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

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

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


(一)每天一个知识点


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


(二)结论


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


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


(三)再多学一点


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


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


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


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


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


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



相关文章
|
2月前
|
Java 编译器
【Java 抽象类&抽象方法】什么是抽象类&方法,如何定义,起什么作用?
【Java 抽象类&抽象方法】什么是抽象类&方法,如何定义,起什么作用?
|
10月前
|
C#
C#中抽象方法与虚方法的区别
C#中抽象方法与虚方法的区别
|
11月前
|
Java
Java面向对象 抽象类与抽象方法的使用(关键字abstract)
Java面向对象 抽象类与抽象方法的使用(关键字abstract)
54 0
|
12月前
抽象类和普通类的区别
抽象类和普通类的区别
91 0
|
12月前
|
Java 编译器 Android开发
面向对象构造方法、抽象类、内部类
面向对象构造方法、抽象类、内部类
【C++要笑着学】多态 | 重写(覆盖) | 协变构多态 | 父虚子非虚也构多态 | final与override关键字(C++11) | 抽象类 | 纯虚函数 | 抽象类指针
本章我们继续讲解面向对象三大特性,上一章我们讲解了继承,本章我们讲解多态。从多态的概念一步步讲解,介绍构成多态的必要条件和两个例外。还会顺带讲解一下 C++11 更新的两个和多态有关系的关键字 final 和 override。上一章我们讲解了虚函数,本章会先补充纯虚函数的概念,然后再引入抽象类的概念。本章我们只学习C++多态的基础知识,至于多态的原理(VTBL、决议等)的难度相对较大,我们单独放到下一章去做专门讲解。
223 0
【C++要笑着学】多态 | 重写(覆盖) | 协变构多态 | 父虚子非虚也构多态 | final与override关键字(C++11) | 抽象类 | 纯虚函数 | 抽象类指针
抽象类代码
抽象类代码
57 0
|
Java
Java面向对象(19)--抽象类与抽象方法abstract
Java面向对象(19)--抽象类与抽象方法abstract
90 0
|
Java
接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类?抽象类中是否可以有静态的main方法?
有一个面试四连击的题目:接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类?抽象类中是否可以有静态的main方法?
138 0
接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类?抽象类中是否可以有静态的main方法?
|
Java
Java面向对象——多态、final
Java面向对象——多态、final
103 0