每天一个知识点(六)抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?

简介: 抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?

微信搜索《Java鱼仔》,每天一个知识点不错过


(一)每天一个知识点


抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?


(二)结论


抽象类不必须有抽象方法,但如果一个类包含抽象方法,则该类必须是抽象类。


抽象类不能用final修饰,因为抽象类必须被继承,而被final修饰的类不能被继承。


(三)再多学一点


虽然几乎每个程序员都知道抽象类,但是实际开发中抽象类对大多数人来说就只是一个概念,用到的机会很少。理由也很简单,抽象类是抽取共性需求而来的,即使没有抽象类,对业务的实现也没有影响。但是如果合理应用抽象类,能增强代码的重用性,更加有效地解决复杂需求。


继续回到题目:抽象类必须要有抽象方法吗?


当然不必须有,甚至于一个抽象类可以没有任何一个抽象方法,这个类除了不能被实例化之外,和普通的类几乎没有任何区别。


但是如果一个抽象类中有抽象方法,那么他的子类必须要实现抽象方法。


第二个问题:抽象类可以使用final修饰吗?


当然不可以,通过理解抽象类的作用我们就发现了,抽象类必须要被继承,如果用final修饰抽象类,这个抽象类就无法被继承,自然就无法使用了。



相关文章
|
2月前
|
抽象类与抽象方法
抽象类和抽象方法是面向对象编程中的重要概念。抽象类不能被实例化,主要用于定义子类的通用接口或行为。抽象方法是在抽象类中声明但未实现的方法,要求子类必须实现这些方法。这种方式有助于构建灵活且可扩展的代码结构。
119 2
|
8月前
|
C#抽象类和抽象方法详解
C#抽象类和抽象方法详解
112 0
|
8月前
|
抽象类为什么有抽象方法?
抽象类为什么有抽象方法?
C#中抽象方法与虚方法的区别
C#中抽象方法与虚方法的区别
Java面向对象 抽象类与抽象方法的使用(关键字abstract)
Java面向对象 抽象类与抽象方法的使用(关键字abstract)
94 0
【C++要笑着学】多态 | 重写(覆盖) | 协变构多态 | 父虚子非虚也构多态 | final与override关键字(C++11) | 抽象类 | 纯虚函数 | 抽象类指针
本章我们继续讲解面向对象三大特性,上一章我们讲解了继承,本章我们讲解多态。从多态的概念一步步讲解,介绍构成多态的必要条件和两个例外。还会顺带讲解一下 C++11 更新的两个和多态有关系的关键字 final 和 override。上一章我们讲解了虚函数,本章会先补充纯虚函数的概念,然后再引入抽象类的概念。本章我们只学习C++多态的基础知识,至于多态的原理(VTBL、决议等)的难度相对较大,我们单独放到下一章去做专门讲解。
297 0
【C++要笑着学】多态 | 重写(覆盖) | 协变构多态 | 父虚子非虚也构多态 | final与override关键字(C++11) | 抽象类 | 纯虚函数 | 抽象类指针
Java面向对象(19)--抽象类与抽象方法abstract
Java面向对象(19)--抽象类与抽象方法abstract
118 0
【Kotlin】抽象类 ( 声明 | 抽象类成员 | 抽象类继承 | 抽象方法覆盖 | 抽象方法实现 )
【Kotlin】抽象类 ( 声明 | 抽象类成员 | 抽象类继承 | 抽象方法覆盖 | 抽象方法实现 )
242 0
知识回顾:抽象类与抽象方法
知识回顾:抽象类与抽象方法
116 0