Creating Superclasses and Subclasses

AP Computer Science A· difficulty 4/5

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

  • B

    A B f

    check_circle
  • 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().

Want 10 more like this — adaptive to your weak spots?

Related questions