Java中子类不能继承父类的构造方法应如何理解

z86802890 2011-03-27 02:35:15
如题!!!!!!!!!!
...全文
1422 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

构造方法的定义 是与类的名称相同;如果子类能够继承父类的构造方法;那么在子类的构造方法中就有不同于子类名称的构造法;
#这与构造方法的定义不符;所以子类是不能继承父类的构造方法的;


转载于http://blog.csdn.net/zennghong369/article/details/6008554
lincoln911 2011-03-27
  • 打赏
  • 举报
回复 1
3,4楼说的都是对的,4楼说的具体些
pzy123cn 2011-03-27
  • 打赏
  • 举报
回复
构造方法是绝对不可以被继承的
在 Java 中,无论是 explicit 还是 implicit 方式,都要求在子类的构造方法中调用其父类的构造方法。如果父类无构造方法(其实是一个默认无参的构造方法),那么子类的构造方法中会自动进行调用;如果 父类有自己的构造方法(这时父类不会有默认无参的构造方法),那么在子类的构造方法中,必须要调用父类的某个构造方法,而且必须是在构造方法的第一个语句 中进行调用。

究其原因,想必是 Java 语言设计者,要求子类有责任保证它所继承的父类尽快进入到一个稳定、完整的状态中。试想,如果没有这个约束,那么子类的某个继承自父类的方法可能会使用到父类中的一些变量,而这些变量并没有进行初始化,从而产生一些难以预料的后果,因此构造子类的对象前,必须构造父类的对象,并将之隐含于子类对象之中,使用关键字super引用父类对象。

也因此,当一个类的构造方法是 private 时,它是不可被 extends 的,因为子类构造方法难以调用到这个父类的构造方法。
引自(http://blog.csdn.net/javafuns/archive/2006/12/17/1446825.aspx)
sunnauq 2011-03-27
  • 打赏
  • 举报
回复

java中每个类必须有一个构造函数,如果没有显示的声明构造函数,那么编译器会自动加一个无参的构造函数。当显示定义了带参数的构造函数之后,而没有显示的定义无参构造函数,那么这个类就没有无参构造函数了。

子类继承父类,必须在子类的构造函数中调用父类的构造函数,如果子类得构造函数中,没有显示的调用,那么会自动调用父类的无参数构造函数,如果父类没有无参数构造函数,那么子类中必须显示的调用父类的构造函数。
z86802890 2011-03-27
  • 打赏
  • 举报
回复
你和没说一样,我想知道为什么不能,说说原因.
f8281888 2011-03-27
  • 打赏
  • 举报
回复
JAVA中的子类能继承父类的构造方法?不行吧,因为JAVA是一个标准,他没有规定这样的标准。即只能通过接口等来实现多继承。。

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧