问题描述
- 请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法
-
public class TestA {public static void main(String[] args) { TestA a = new TestA(); a.start(); } public void start(){ B b = new B(); b.funA(); } public abstract class A { public void funA(){ System.out.println("I'm funA in A "); funB(); } abstract void funB(); } public class B extends A{ @Override public void funA() { super.funA(); } @Override void funB() { System.out.println("I'm funB in B"); } }
}
我就是想问为什么调用父类方法后,父类为什么调用的是子类的方法,不是调用抽象么,抽象不是不能被调用么
时间: 2024-09-20 19:49:25