结论:
1) 实例化子类时必须先实例化父类;
2) 抽象类中的方法调用子类实现的抽象方法
3) 抽象类可以在子类未实例化时调用子类实现的抽象方法;
4) 在抽象类的构造方法中调用了自己未实现的抽象方法,那么对应子类实现了此方法;在抽象类实例化之后,子类未实例化之前,抽象类可以调用子类实现的抽象方法。
代码如下:
package com.example;
public class Test {
public static void main(String[] args) {
new Child();
//结果:初始化父类---->child eat---->child jump---->初始化子类
}
}
package com.example;
/**
* Created on 2017/5/5.
* Author:crs
* Description:XXX
*/
public class Child extends Parent {
public Child() {
System.out.println("实例化子类");
}
@Override
void eat() {
System.out.println("child eat");
}
@Override
void jump() {
System.out.println("child jump");
}
}
package com.example;
/**
* Created on 2017/5/5.
* Author:crs
* Description:XXX
*/
public class Child extends Parent {
public Child() {
System.out.println("实例化子类");
}
@Override
void eat() {
System.out.println("child eat");
}
@Override
void jump() {
System.out.println("child jump");
}
}