黑马程序员技术交流社区

标题: java中的继承关系 [打印本页]

作者: 王德云    时间: 2011-11-4 02:43
标题: java中的继承关系
在java中如何判断该类是否可以被继承,是不是看在本类中是否有本类的构造方法.
如果说本类不能被其它类继承,因此不能重写Overriding.
请问这两句话对吗?
作者: olkldksl    时间: 2011-11-4 07:07
要是不想让类被继承,类前面加个final
作者: 姚志华    时间: 2011-11-4 08:52
我认为是对的
作者: 齐国峰    时间: 2011-11-4 09:05
支持二楼!
作者: 吉许    时间: 2011-11-4 09:19
继承必须是子类与父类之间有所属关系才能继承,也就是is a.如果没有所属关系不能强行让两个类来继承,就像毕老师讲的两人没关系让一人当另一人的儿子,这人肯定很不爽了.一个类建立就有一个默认的空参的构造方法.如果父类中存在有参的构造方法,父类要被继承就要在父类中声明一个无参的构造方法.
@override是子类复写父类的方法,如果类之间不存在继承关系没有子父类何来复写一说?
作者: 喻尚健    时间: 2011-11-4 09:29
判断类可不可以被继承,如果前有final修饰的话,那肯定就不能被继承了;构造方法本来就是不能被继承的,如果父类前没有final修饰符,可以对父类中的一些方法或变量用private修饰,
这样的话子类就无法重写到被private修饰的变量和方法了,当然也可以建立与父类同名的方法和变量,但并没起到重写的作用,只是新建的方法和变量。
欢迎指正。。。
作者: 王德云    时间: 2011-11-4 09:35
谢谢解答,第二句肯定是对的,第一句如果说他有本类的构造方法,假设是有参的,那他是不是一定有一个默认的无参的呢。
作者: 姚志华    时间: 2011-11-4 09:55
wangdeyun 发表于 2011-11-4 09:35
谢谢解答,第二句肯定是对的,第一句如果说他有本类的构造方法,假设是有参的,那他是不是一定有一个默认的 ...

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2