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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 韩金蕊 黑马帝   /  2012-1-9 15:49  /  3059 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 韩金蕊 于 2012-1-9 21:22 编辑

abstract与final两个修饰符是否可以同时修饰一个类或成员方法?

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

8 个回复

倒序浏览
final 在修饰一个类的时候是指定该类被能不继承。
abstract 在修饰一个类时,则指定,如何使用该类,则需要该类有实现类。
这两个关键字是矛盾的,一个指定不能继承,一个指定需要实现。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
不能
因为abstract类自身没有具体的对象,需要派生出子类后再创建子类的对象。
而final类不可能有子类。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
abstract抽象类,需要继承,而final定义的类不能继承,所以final 和 abstract 不能同时修饰一个类。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
不可以。你可以编一段程序试下,会报错:
1.abstract和final是非法的修饰组合
2.无法从最终类进行继承
原因:
对类来说:
你创建个类用abstract修饰了,本来可以被子类通过复写其方法的方式
继承并使用的,但是你又用final修饰了,就不能被继承了,与前面子类
通过复写父类的方法继承父类岂不是矛盾了?!所以肯定是错误的。
对于成员方法:
如果是子类不再被继承的话,倒没什么大碍;
如果是父类或者子类还会被继承的话,几乎相同的解释,首先abstract
和final是非法的修饰组合,错误1;
类用abstract修饰了,本可以被子类通过复写其方法的方式
继承并使用,被final修饰的方法不可以被复写。

评分

参与人数 1技术分 +2 收起 理由
吴上储 + 2

查看全部评分

回复 使用道具 举报

(1)Abstract修饰符表示所修饰的类是抽象类(是不完整的 必须通过子类去实现)
(2)final 单词是意思最终的; 所以被修饰的是最终类 不可以被继承。
(3) 所以一个类 不可以同时为(Abstract,final);
        剩下的你懂得?

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
袁野 黑马帝 2012-1-10 13:02:20
7#

(1)Abstract修饰符表示所修饰的类是抽象类(是不完整的 必须通过子类去实现)
(2)final 单词是意思最终的; 所以被修饰的是最终类 不可以被继承。
(3) 所以一个类 不可以同时为(Abstract,final);
        剩下的你懂得?
回复 使用道具 举报
学习了,刚遇到问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马