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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王德云 金牌黑马   /  2011-11-4 02:43  /  2337 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在java中如何判断该类是否可以被继承,是不是看在本类中是否有本类的构造方法.
如果说本类不能被其它类继承,因此不能重写Overriding.
请问这两句话对吗?

评分

参与人数 1技术分 +1 收起 理由
李印东老师 + 1 赞一个!

查看全部评分

8 个回复

倒序浏览
要是不想让类被继承,类前面加个final
回复 使用道具 举报
我认为是对的
回复 使用道具 举报
支持二楼!
回复 使用道具 举报
继承必须是子类与父类之间有所属关系才能继承,也就是is a.如果没有所属关系不能强行让两个类来继承,就像毕老师讲的两人没关系让一人当另一人的儿子,这人肯定很不爽了.一个类建立就有一个默认的空参的构造方法.如果父类中存在有参的构造方法,父类要被继承就要在父类中声明一个无参的构造方法.
@override是子类复写父类的方法,如果类之间不存在继承关系没有子父类何来复写一说?

评分

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

查看全部评分

回复 使用道具 举报
判断类可不可以被继承,如果前有final修饰的话,那肯定就不能被继承了;构造方法本来就是不能被继承的,如果父类前没有final修饰符,可以对父类中的一些方法或变量用private修饰,
这样的话子类就无法重写到被private修饰的变量和方法了,当然也可以建立与父类同名的方法和变量,但并没起到重写的作用,只是新建的方法和变量。
欢迎指正。。。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
谢谢解答,第二句肯定是对的,第一句如果说他有本类的构造方法,假设是有参的,那他是不是一定有一个默认的无参的呢。
回复 使用道具 举报
姚志华 黑马帝 2011-11-4 09:55:16
8#
wangdeyun 发表于 2011-11-4 09:35
谢谢解答,第二句肯定是对的,第一句如果说他有本类的构造方法,假设是有参的,那他是不是一定有一个默认的 ...

如果有了一个带参的构造方法,系统就不会隐式的再添加一个无参的构造方法了,如果你要用无参的构造方法就要手写才可以

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马