super解决或者this解决
注意事项
* super(…)或者this(….)必须出现在构造方法的第一条语句上
class Demo4_Extends { public static void main(String[] args){ Son s1 = new Son(); System.out.println(s1.getName() + s1.getAge()); System.out.println("------------"); Son s2 = new Son("张三",23); System.out.println(s2.getName() + s2.getAge()); } } class Father { private String name; private int age; /*public Father(){ System.out.println("Father 空参构造"); }*/ 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(){ //super("李四",24); //隐藏了这个super(); super 调用父类中的构造方法 this("李四",25); //调用本类中的构造方法 把值赋给son有参构造方法然后通过super(name,age)赋值给父类有参构造方法赋值; System.out.println("son 空参构造"); } public Son(String name,int age){ super(name,age); //隐藏了这个super(); System.out.println("son 有参构造"); } }
浙公网安备 33010602011771号