Creating Superclasses and Subclasses

AP Computer Science A· difficulty 3/5

public abstract class Shape {
    public abstract double area();
    public abstract double perimeter();
}
public abstract class Polygon extends Shape {
    public double perimeter() { return 0.0; }
    // area not implemented
}
public class Square extends Polygon {
    private double s;
    public Square(double side) { s = side; }
    public double area() { return s * s; }
}
// Usage:
Shape sh = new Square(3);
System.out.print(sh.area() + " " + sh.perimeter());

What is printed?

  • A

    9.0 12.0

  • B

    0.0 0.0

  • C

    Compile error

  • D

    9.0 0.0

    check_circle

Explanation

Polygon is abstract so it doesn't have to implement area. Square implements area (returns 9.0). perimeter is inherited from Polygon, returning 0.0.

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

Related questions