父子类代码执行顺序

package ParentAndSon;

public class Animal {
//静态代码块
static{
System.out.println(“父类的静态代码块”);
}
//普通代码块
{
System.out.println(“执行父类的构造代码块”);
}
//构造方法
public Animal(){
System.out.println(“执行父类的构造方法”);
}
public Animal(String name){
System.out.println(“执行父类的构造方法 动物名称”);
}
//普通方法
public void A(){
System.out.println(“执行父类的A方法”);
}
}

package ParentAndSon;

public class Dog extends Animal{
public static void main(String[] args) {
Dog dog = new Dog();
dog.A();
}
//静态代码块
static {
System.out.println(“子类的静态代码块”);
}
//普通代码块
{
System.out.println(“执行子类的构造代码块”);
// System.out.println(“普通子类代码块”);
}
//构造方法
public Dog(){
System.out.println(“执行子类的构造方法”);
}
//普通方法
public void A() {
System.out.println(“执行子类的A方法”);
}
public void B(){
System.out.println(“执行子类的B方法”);
}
}
父子类执行顺序:父类静态代码块,子类静态代码块,父类构造代码块,父类构造方法,子类构造代码块,子类构造方法,普通方法

单类执行顺序:静态代码块,构造代码块,构造方法,普通方法

猜你喜欢

转载自blog.csdn.net/yituo7475/article/details/82982836