public class Test {
public static void main(String[] args) {
A ab = new B();
// ab.say();
// ab = new B();
// ab.say();
}
}
class A {
static {
System.out.print("A的static ");
}
public A() {
System.out.print("a的public ");
}
void say() {
System.out.print("a的say ");
}
}
class B extends A {
static {
System.out.print("B的static ");
}
public B() {
System.out.print("b的public ");
}
void say() {
System.out.print("b的say ");
}
}
执行结果:A的static B的static a的public b的public (父子类的static都只会只会执行一次,构造函数会在new的时候都执行,say的话如果new的是子类,则执行子类的方法)