黑马程序员技术交流社区
标题:
继承的问题
[打印本页]
作者:
FlyMeToTheMoon
时间:
2014-11-2 19:22
标题:
继承的问题
子类为什么一定要引用父类的构造函数 有点搞不清
作者:
姜浩
时间:
2014-11-2 20:18
说实话这里我也不是很清楚,因此我用代码试验了一下。
在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来。
// 父类
class Father
{
// public TTT(int i)
// {
// System.out.println(11111);
// }
}
// 子类
class Son extends Father
{
public Son(int i)
{
复制代码
当类中没有写构造方法时,会系统会自动添加一个隐式的无参构造。
当你没有使用父类默认的构造方法时,此时在子类的构造方法中就需要显示的调用父类定义的构造方法。
这时你就要显示的调用父类的构造方法,因为子类默认调用的是父类的无参构造方Father()
如果你的父类中显示的写了一个无参的构造方法,这时子类中就不需要显示的调用父类中的构造方法,
因为子类中有一个无参的构造方法(可能是你显示写的,也可能是隐式的),子类的构造方法它会自动的去调用父类中的无参构造方法。
作者:
姜浩
时间:
2014-11-2 20:20
// 父类
class Father
{
// public TTT(int i)
// {
// System.out.println(11111);
// }
}
// 子类
class Son extends Father
{
public Son(int i)
{
System.out.println(2222);
}
}
public class Test
{
public static void main(String[] args)
{
Son d = new Son(1);
}
}
复制代码
上面代码复制少了。
作者:
OnlyStyle
时间:
2014-11-2 20:33
这是JVM规定的,如果不调用,那么当父类有些字段是需要由构造函数接收实参传入的,而子类不调用的话,试问次字段子类如何初始化次字段?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2