黑马程序员技术交流社区

标题: 继承类程序运行看结果,空参构造,有参构造问题 [打印本页]

作者: 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