`
L.G.Alexander
  • 浏览: 157254 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(十二):一个类abstract和final关键子不能同时使用

 
阅读更多
public abstract final class AbstractFinalTest {

}

问题:上述代码能否编译通过?为什么?
解答:不能编译通过。
分析:它会报错,非法的修饰符组合abstract和final。分析:java采取什么策略导致abstract和final不能同时使用呢?是这样的:abstract修饰一个类表示这个类是抽象类,抽象类的特点是如果一个类是抽象类,里面不一定包含抽象的方法,可以全都是具体的方法。反过来说,如果一个类里面包含了抽象的方法,这个类必然是抽象类。对于抽象类来说,不管里面是不是全都是具体的方法,java规定它都不能被实例化,不能通过new的方式来生成它的一个对象,我们必须通过一个子类继承它来完成这个抽象类所完成的功能。通过实例化它的子类来实现抽象类的功能。final修饰一个类的时候表示类不能被继承,它是一个终态类。所以abstact和final是一种矛盾的状况。
分享到:
评论

相关推荐

    Java语言程序设计实验指导电子学习教案.pptx

    - final类与抽象类:一个类不能同时是final和abstract,因为final表示不可继承,而抽象类需要子类完成其具体实现。 通过理解这些核心概念,学生可以在Java编程中有效地利用面向对象特性,提高代码的可维护性和可...

    java语言程序设计期末复习综合练习题答案.doc

    - C:abstract和final不能同时修饰一个类,因为final表示不能被继承,而abstract表示需要被继承。 - D:abstract类可以不包含abstract方法,但含有abstract方法的类必须声明为abstract。 10. **抽象类与抽象方法*...

    JAVA期末复习资料1.doc

    28. **final的含义**:`final`类不能派生子类,`final`方法不能被覆盖。 29. **默认访问权限**:默认访问权限(package-private)的成员只能被同一包内的其他类访问,不能被不同包中的子类访问。 30. **继承性**:...

    Java程序设计任务驱动式教程任务九子承父业继承和多态的使用学习教案.pptx

    多态是面向对象的另一个关键特性,它允许我们使用一个类的引用(通常是父类引用)指向它的不同子类实例。多态分为静态多态(编译时确定)和动态多态(运行时确定)。静态多态主要通过方法重载实现,而动态多态通过...

    Java程序设计任务驱动式教程任务九子承父业继承和多态的使用PPT课件.pptx

    - **最终类(Final Class)**:使用`final`关键字修饰的类不能被继承,提供了最终的行为定义。 - **抽象类(Abstract Class)**:没有完全定义的类,至少有一个抽象方法。抽象类可以包含抽象方法和非抽象方法,不能...

    Java期末考试题.pdf

    23. **修饰符混用**:final不能与abstract一起修饰类,抽象类可以有非抽象方法,非abstract类不能有abstract方法,static方法不能处理非static属性。 24. **protected访问控制符**:protected成员可以被本类、同一...

    JAVA期末复习资料1.docx

    16. **实例变量和类方法**:实例变量不能在类方法(静态方法)中直接引用,而类变量可以在实例方法中直接引用。 17. **抽象类**:抽象类可以有构造方法,但不能直接实例化。 18. **继承**:Java支持单继承,一个类...

    Java基础阶段测试(含答案).docx

    12. **类修饰符**:abstract类不能实例化,只能用来派生子类,且不能与final同时修饰一个类。abstract方法必须在abstract类中声明,但abstract类可以没有abstract方法。 13. **静态初始化器**:静态初始化器是用`...

    Java 类的继承

    它允许创建一个新类(子类),该类不仅具有自身的属性和方法,还能直接继承一个或多个已存在的类(父类)的属性和方法,从而实现代码的重用和扩展。这种机制使得Java程序设计更加灵活和模块化。 **类的定义与继承**...

    java 重要知识点总结

    - `final`类不能有子类,`abstract`类不能有具体实例,两者不能同时修饰一个类。 - 创建对象使用`new`关键字结合构造方法完成,构造方法无返回类型且不能用`void`。 5. **访问控制符与访问权限**: - 类变量...

    java期末复习题(二).pdf

    选项C正确,abstract和final不能同时修饰一个类。选项D错误,abstract类中必须至少有一个abstract方法。 13. **Applet生命周期**:在浏览器中执行Applet时,`init()`方法首先被调用,初始化Applet。答案是A。 以上...

    第4章 接口、抽象类与包.ppt

    使用`implements`关键字,一个类可以实现多个接口: ```java public class ClassName implements Interface1, Interface2 { // 实现接口中的方法 } ``` 接口也可以作为类型使用,接口类型的变量可以引用实现该...

    Java编程详细教程高级类特性上PPT教案学习.pptx

    - `final`类不能被继承,例如`java.lang.Math`和`java.lang.String`。 - `final`变量一旦初始化就不可更改其值,常用于定义常量。 - `final`方法不能被子类重写,确保行为的不变性。 4. **`abstract`类和`...

    西北工业大学java课程考试试卷

    15. **类和修饰符**:`abstract`类不能实例化,只能用来派生子类;`final`类不能有子类,也不能声明为`abstract`;`abstract`方法必须在`abstract`类中,但`abstract`类可以不包含`abstract`方法。 16. **方法重载*...

    java面试题及答案

    26. **synchronized方法的互斥性**:一个线程进入synchronized方法后,其他线程不能进入该对象的其他synchronized方法,除非该方法执行结束。 27. **try-finally的执行顺序**:finally块中的代码总会在try块结束...

    JAVA试题及参考答案

    abstract与final不能同时修饰一个类。抽象方法必须在abstract类中声明,但不强制abstract类必须包含抽象方法。 5. **自定义异常**:自定义异常类通常继承自`Exception`类或其子类,以便更好地符合异常处理机制。 6...

    Java继承案例及源代码.rar

    在Java编程语言中,继承是面向对象编程的一个核心特性,它允许一个类(子类)继承另一个类(父类)的属性和方法。这个资源"Java继承案例及源代码.rar"显然提供了关于如何在实际应用中使用Java继承的实例和源代码。...

Global site tag (gtag.js) - Google Analytics