public abstract class A {
public A() { System.out.print("A "); }
public abstract void f();
}
public class B extends A {
public B() { System.out.print("B "); }
public void f() { System.out.print("f "); }
}
A x = new B();
x.f();What is printed?
- A
f A B
- Bcheck_circle
A B f
- C
Compile-time error: cannot have constructor in abstract class
- D
B A f
Explanation
Abstract classes CAN have constructors (called via super). A's constructor runs first, then B's, then f().