浏览 1871 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-28
最后修改:2009-03-03
public abstract final class AbstractFinalTest { } 问题:上述代码能否编译通过?为什么? 解答:不能编译通过。 分析:它会报错,非法的修饰符组合abstract和final。分析:java采取什么策略导致abstract和final不能同时使用呢?是这样的:abstract修饰一个类表示这个类是抽象类,抽象类的特点是如果一个类是抽象类,里面不一定包含抽象的方法,可以全都是具体的方法。反过来说,如果一个类里面包含了抽象的方法,这个类必然是抽象类。对于抽象类来说,不管里面是不是全都是具体的方法,java规定它都不能被实例化,不能通过new的方式来生成它的一个对象,我们必须通过一个子类继承它来完成这个抽象类所完成的功能。通过实例化它的子类来实现抽象类的功能。final修饰一个类的时候表示类不能被继承,它是一个终态类。所以abstact和final是一种矛盾的状况。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |