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
- Dcheck_circle
9.0 0.0
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.