父类
package FuZi;
public class Fu {
public Fu() {
System.out.println("父类构造方法");
}
//父类静态代码块
static {
System.out.println("父类静态代码块,字节码文件加载即执行,只执行一次");
}
public void Fathers(){
System.out.println("父类公有方法");
}
{
System.out.println("父类非静态代码块");
}
public static void main(String[] args) {
System.out.println("父类main方法");
}
}
子类
package FuZi;
public class Zi extends Fu{
public Zi() {
System.out.println("子类无参构造");
}
static {
System.out.println("子类静态代码块,字节码文件加载即执行,且执行一次");
}
{
System.out.println("子类非静态代码块");
}
public void Zition(){
System.out.println("子类非静态代码块");
}
public static void main(String[] args) {
System.out.println("子类 main 方法");
//new Zi();
}
}
调用
package FuZi;
public class TextDemo {
public static void main(String[] args) {
Zi zi = new Zi();//创建子类对象
zi.Fathers();//子类对象调用父类公有方法
}
}
执行结果 先静(父子)后非静(父子)再构造(父子)
父类静态代码块,字节码文件加载即执行,只执行一次
子类静态代码块,字节码文件加载即执行,且执行一次
父类非静态代码块
父类构造方法
子类非静态代码块
子类无参构造
=========
父类公有方法
Process finished with exit code 0