You write an abstract class and the areas of three shapes.
Shape is abstract. It has two abstract methods:
area()returns the shape's area.name()returns the shape's name.
It also has one concrete method, describe(). It returns a text such as Square with area 25. That is the name, then with area, then the area.
Three shapes inherit from Shape:
Rectangle(width, height)has area width × height.Square(side)has area side × side.RightTriangle(a, b)has sidesaandbthat meet at a right angle. Its area is a × b / 2, rounded down.
Their constructors and name() methods are already written. You write each area().
In Java, Shape is an abstract class. Its abstract methods have no body.
For each shape, the harness prints describe() on its own line.
Example 1:
Input: new Rectangle(3, 4), new Square(5), new RightTriangle(3, 4) Output: Rectangle with area 12 Square with area 25 Right triangle with area 6 Explanation: 3 × 4 = 12 and 5 × 5 = 25. The triangle is half of 3 × 4, so 6.
Example 2:
Input: new RightTriangle(3, 5), new Square(1) Output: Right triangle with area 7 Square with area 1 Explanation: Half of 3 × 5 is 7.5. It rounds down to 7.
Example 3:
Input: new Rectangle(1, 7), new RightTriangle(1, 1) Output: Rectangle with area 7 Right triangle with area 0 Explanation: A 1 by 7 rectangle has area 7. Half of 1 × 1 rounds down to 0.
Constraints:
- 1 to 100 shapes.
- Each size is a whole number from 1 to 10,000.
Free plan: 30 tutor messages. Premium is unlimited.
