面试官提了这样一个问题:
抽象类可以用final修饰吗?
这个题也是没什么可深入挖掘的,面试的时候遇到这样的问题,你直接了当用几句话说清楚就完了。
不能。定义抽象类就是让其他类继承的,而final修饰的类不能被继承。
final 在 Java 中有什么作用?
- final 修饰的类叫最终类,该类不能被继承。
- final 修饰的方法不能被重写。
- final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。
演示面试
我来直接演示面试:
你好,面试官,抽象类是不允许用final修饰的。
抽象类的定义目的是类不允许直接实例化,必须被继承重写。
而final修饰符的概念正好相反,final修饰的类是不允许被继承的,只能被new实例化。
因此抽象类和final是矛盾的。