黑马程序员技术交流社区
标题:
继承类程序运行看结果,空参构造,有参构造问题
[打印本页]
作者:
Laopozini123
时间:
2016-3-21 19:23
标题:
继承类程序运行看结果,空参构造,有参构造问题
class Demo6_Extends {
public static void main(String[] args) {
Son s1 = new Son();
System.out.println(s1.getName() + "..." + s1.getAge());
}
}
class Father {
private String name;
private int age;
public Father(String name,int age) {
this.name = name;
this.age = age;
System.out.println("Father 有参构造");
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
class Son extends Father {
public Son() {
this("王五",25);
System.out.println("Son 空参构造");
}
public Son(String name,int age) {
super(name,age);
System.out.println("Son 有参构造");
}
}
代码的运行结果是
Father 有参构造
Son 有参构造
Son 空参构造
王五...25
请大神向我明示,Son的有参构造是如何运行得来的.
它只对无参构造进行了访问,没有对有参构造进行访问,为什么还是输出了有参构造的语句???
作者:
Laopozini123
时间:
2016-3-21 19:35
我明白了,这里面在创建对象后,先访问的子类的空参构造方法,然后利用 this("王五",25); 将值传递给son的有参构造方法,然后再将值传递给父类的有参构造,给成员变量赋值,然后输出语句father 有参构造.然后返回至子类有参构造输出son 有参构造,this语句执行完毕,然后运行son空参构造内的语句输出 son 空参构造.最后输入main方法语句 王五,25.哈哈哈哈哈哈哈~自己弄明白的感觉真是爽~~~~~~~~~~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2