2020-09-03(构造方法+继承)

tech2024-12-14  11

package demo2; public class Main { public static void main(String[] args) { Grandson b = new Grandson(); /** * 子类new对象时,会调用父类的构造方法(如果还有父类,会一直向上调用父类的构造方法) * 当其中的某个父类的构造方法被修改为有参的, * 那么需要这个父类的子类传递一个参数,否则会报错, * 或者自己写一个该父类的无参构造方法 */ System.out.println("红火火恍恍惚惚"); b.addddd(); // 子类创建的对象,可以一直向上调用父类,父父类的方法, //比如调用根类Object中的方法 } } package demo2; public class Grandson extends Son{ Grandson() { System.out.println("**********55555**********"); System.out.println("调用子类Subtine构造方法"); System.out.println("**********66666**********"); } } package demo2; public class Son extends Father{ public Son() { super(5); System.out.println("**********33333**********"); System.out.println("调用子类Subparent构造方法"); System.out.println("**********44444**********"); } } package demo2; public class Father extends Grandpa{ /*Parent() { }*/ Father(int a) { System.out.println("**********11111**********"); System.out.println("调用父类Parent构造方法"+a); System.out.println("**********22222**********"); } } package demo2; public class Grandpa { void addddd() { System.out.println("**********77777**********"); } public Grandpa() { System.out.println("**********-1111**********"); System.out.println("父类的父类的构造方法"); System.out.println("**********00000**********"); } } **********-1111********** 父类的父类的构造方法 **********00000********** **********11111********** 调用父类Parent构造方法5 **********22222********** **********33333********** 调用子类Subparent构造方法 **********44444********** **********55555********** 调用子类Subtine构造方法 **********66666********** 红火火恍恍惚惚 **********77777**********

 

最新回复(0)