A small Java app demonstrating abstract classes, inheritance, and method overriding using geometric shapes.
Shape
(abstract): enforcescalculateArea()
andcalculatePerimeter()
, and provides a concretegetName()
+toString()
.Circle
,Rectangle
,Triangle
: implement the abstract methods with appropriate formulas.- Input validation:
- Circle: radius > 0
- Rectangle: length, width > 0
- Triangle: all sides > 0 and satisfy the triangle inequality
- Input validation:
Main
: creates sample shapes, prints name/area/perimeter, and shows edge cases.
Shape.java
Circle.java
Rectangle.java
Triangle.java
Main.java
javac Shape.java Circle.java Rectangle.java Triangle.java Main.java
java Main