A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁胜海 中级黑马   /  2012-11-2 08:34  /  2628 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对于修饰一个类,我们这样写
   public abstract final Test{

}
会不会编译错误?说出你认为它编译正确或错误的原因,稍后看大家谈论,我会总结。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

10 个回复

倒序浏览
抽象方法必须重写,final修饰强制不允许被重写。编译失败。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
首先 没有class关键字
其次,abstract和 final 矛盾,编译错误

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
擦,少了个class
回复 使用道具 举报
算了,我该大家来个总结,刚考大家少写了class,额,那算失误啊,总结如下:我们对final修饰类的时候不能和abstract一起出现,一个类不能既是final,又是abstract,因为abstract的,主要目的是定义一种约定,让子类去实现这种约定,而final表示该类不能被继承,这样abstract希望该类可以被继承而final明确说明该类不能被继承,两者矛盾。因此一个类不能既是final,又是abstract。


回复 使用道具 举报
不能通过吧!!两者矛盾了,这是我试过后的结果:The class Test can be either abstract or final,
         not both

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
果断地abstract和final修饰符矛盾 。

finalAndAbstractError.png (34.85 KB, 下载次数: 38)

finalAndAbstractError.png

评分

参与人数 1技术分 +2 收起 理由
滔哥 + 2

查看全部评分

回复 使用道具 举报
被final修饰的抽象类无法被继承,抽象方法无法被重写,如果可以创建子类对象的话,那么调用抽象方法又有什么意义呢?果断编译失败。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
嗯嗯,基础都很好嘛,谁是第一时间就立马清楚的?
回复 使用道具 举报
怎么少了class?
abstract要被继承,final不允许继承,相矛盾
回复 使用道具 举报
一:类必须要用关键字class修饰
public class abstract final Test{}
二:abstract和final不能共存
public class abstract Test{}
三:abstract应该放到class前面
public abstract class Test{}
四:编译通过,一个没有意义抽象类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马