java继承时候类的运行顺序问题

java

子类在继承父类后,创建子类对象会首先调用父类的构造函数,先运行父类的构造函数,然后再运行子类的构造函数,例如以下所看到的:


class Father{

public Father(){

System.out.println("I am father");

}

}

public class Child extends Father{

public Child(){

System.out.println("I am child");

}

public static void main(String[] args) {

Father f=new Father();

Child c=new Child();

}

}


当父类有带參数的构造函数时,子类默认是调用不带參数的构造函数,例如以下所看到的:


class Father{

public Father(){

System.out.println("I am father");

}

public Father(String name){

System.out.println("I am father,My name is "+name);

}

}

public class Child extends Father{

public Child(){

System.out.println("I am child");

}

public static void main(String[] args) {

Father f=new Father("Apache");

Child c=new Child();

}

}


若想子类调用父类带參数的构造函数,须要用super()函数申明,例如以下:

class Father{

public Father(){

System.out.println("I am father");

}

public Father(String name){

System.out.println("I am father,My name is "+name);

}

}

public class Child extends Father{

public Child(){

super("Apache");

System.out.println("I am child");

}

public static void main(String[] args) {

Father f=new Father("Apache");

Child c=new Child();

}

}



以上是 java继承时候类的运行顺序问题 的全部内容, 来源链接: utcz.com/z/393707.html

回到顶部