Polymorphism

AP Computer Science A· difficulty 3/5

public abstract class Shape {
    public abstract double area();
    public String describe() { return "Area=" + area(); }
}
public class Square extends Shape {
    private double side;
    public Square(double s) { side = s; }
    public double area() { return side * side; }
}
// Usage:
Shape s = new Square(3);
System.out.print(s.describe());

What is printed?

  • A

    Area=0.0

  • B

    Area=9.0

    check_circle
  • C

    Compile error

  • D

    Area=3.0

Explanation

describe() is inherited from Shape and calls area(). Polymorphic dispatch invokes Square's area, returning 9.0.

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

Related questions