为什么Java类不能既是抽象类又是最终类?
抽象类
包含0个或多个抽象方法的类称为抽象类。如果它包含至少一个抽象方法,则必须将其声明为abstract。
如果要在抽象类中使用具体方法,则需要继承该类,为抽象方法(如果有)提供实现,然后使用子类对象可以调用所需的方法。
示例
在下面的Java示例中,抽象类MyClass包含一个带有名称显示的具体方法。
从另一个类(AbstractClassExample),我们继承了MyClass类,并使用子类对象调用其具体方法显示。
abstract class MyClass {
public void display() {
System.out.println("This is a method of abstract class");
}
}
public class AbstractClassExample extends MyClass {
public static void main(String args[]) {
new AbstractClassExample().display();
}
}输出结果
This is a method of abstract class
期末班
如果您声明一个类为final,而您尝试扩展一个final类,则无法扩展,则将生成一个编译时错误,提示“无法从finalSuperClass继承”
示例
在下面的Java程序中,我们有一个名为SuperClass的最终类,并且试图从另一个类(SubClass)中继承它。
final class SuperClass {
public void display() {
System.out.println("This is a method of the superclass");
}
}编译时错误
编译时,此程序会生成编译错误,如下所示:
SubClass.java:7: error: cannot inherit from final SuperClass
public class SubClass extends SuperClass{
^
1 error既是抽象的,也是最终的
如果声明一个类抽象,要使用它,则必须对其进行扩展;如果您声明一个final类,则不能对其进行扩展,因为这两者相互矛盾,因此,如果您声明了编译时错误,则不能同时声明abstract和final类。将生成。
示例
public final abstract class Example {
public void sample() {
}
}编译时错误
Example.java:1: error: illegal combination of modifiers: abstract and final
public final abstract class Example {
^
1 error热门推荐
6 带清的简短祝福语
10 祝福语大全简短赞美同学
11 俄语祝福语贺卡文案简短
12 国庆简短幽默祝福语
13 高考祝福语简短10字
14 初升高祝福语家长简短
15 春天变冷祝福语简短
16 别人过大寿祝福语简短
17 长辈钻石婚祝福语简短
18 婚礼祝福语简短精辟的