调用顺序为:父类静态方法、 子类静态方法、父类构造方法、子类构造方法、一般方法谁先调用,谁先执行;
测试代码:
public class TestStatic {
public static void main(String[] args) {
C c=new C();
c.dk();
c.de();
// 子类,父类的一般方法谁在前面调用,谁先执行
}
}
class B{
B(){
System.out.println("父类构造方法");
}
void de(){
System.out.println("父类一般方法");
}
static{
System.out.println("父类静态方法");
}
}
class C extends B{
C(){
System.out.println("子类构造方法");
}
void dk(){
System.out.println("子类一般方法");
}
static {
System.out.println("子类静态方法");
}
测试代码:
public class TestStatic {
public static void main(String[] args) {
C c=new C();
c.dk();
c.de();
// 子类,父类的一般方法谁在前面调用,谁先执行
}
}
class B{
B(){
System.out.println("父类构造方法");
}
void de(){
System.out.println("父类一般方法");
}
static{
System.out.println("父类静态方法");
}
}
class C extends B{
C(){
System.out.println("子类构造方法");
}
void dk(){
System.out.println("子类一般方法");
}
static {
System.out.println("子类静态方法");
}
}
测试结果: