主方法--------------------------------------------------------------------------------------------
/** * 子类继承父类, * 1,如果子类和父类都有相同变量,那么子类调用该变量的时候, 先调用子类的,如果子类没有再调用父类的 * 2.子类的构造和父类的构造,new 子类对象,创建子类创建子类构造,再创建父类构造,但是子类构造方法里面第一行会调用父类构造, * 所以: 结论是 先输出父类构造方法的输出,再输出子类构造方法的输出,在输出 变量 * */ public class Test { public static void main(String[] args) { Student s = new Student(); System.out.println(s.a); } }
父类------------------------- public class Person { int a = 1; public Person(){ System.out.println("父类构造方法"); a=5; } } 子类----------------------------
/* * 子类中,super()的方式,调用父类的构造方法 * super()调用的是父类的空参数构造 * super(参数) 调用的是父类的有参数构造方法 * * 子类的构造方法, 有一个默认添加的构造方法 * 注意: 子类构造方法的第一行,有一个隐式代码 super() * public Student(){ * super(); * } * 子类的构造方法第一行super语句,调用父类的构造方法 */ public class Student extends Person{ int a=4; public Student(){ super(); System.out.println("vbbb"); } }