Creating Superclasses and Subclasses

AP Computer Science A· difficulty 3/5

public abstract class Shape {
    public abstract double area();
    public double doubleArea() { return 2 * area(); }
}
public class Square extends Shape {
    private double s;
    public Square(double side) { s = side; }
    public double area() { return s * s; }
}
// Usage:
Shape sh = new Square(4);
System.out.print(sh.doubleArea());

What is printed?

  • A

    8.0

  • B

    16.0

  • C

    Compile error

  • D

    32.0

    check_circle

Explanation

doubleArea() in Shape calls area(). Polymorphic dispatch picks Square's area (16.0), then 2*16.0 = 32.0.

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

Related questions