Language/java
[Java] 도형 "그리다" 출력, 면적구하기 - 상속 연습
송 이
2024. 3. 5. 14:48
package day08;
public class ShapeTest {
public static void main(String[] args) {
Shape[] arr = new Shape[3];
arr[0] = new Circle(3);
arr[1] = new Triangle(2,5);
arr[2] = new Square(10,20);
//그리다 메서드 출력
for(int i =0; i<arr.length; i++) {
if(arr[i] instanceof Circle) {
((Circle)arr[i]).draw("원");
}else if(arr[i] instanceof Triangle){
((Triangle)arr[i]).draw("삼각형");
}else {
((Square)arr[i]).draw("사각형");
}
}
//면적구하기 메서드 출력
for(int i =0; i<arr.length; i++) {
System.out.println("면적은 : "+arr[i].Area() + "입니다.");
}
}
}
package day08;
public class Shape {
public void draw(String shape) {
System.out.println(shape +"을 그립니다.");
}
public double Area() {
return 0;
}
}
package day08;
public class Square extends Shape{
int width;
int height;
Square(int width, int height){
this.width = width;
this.height = height;
}
@Override
public double Area() {
double area;
area = width * height;
return area;
}
}
package day08;
public class Triangle extends Shape{
int base;
int height;
Triangle(int base, int height){
this.base = base;
this.height = height;
}
@Override
public double Area() {
double area;
area = base * height /2;
return area;
}
}
package day08;
public class Circle extends Shape{
int radius;
Circle(int radius){
this.radius = radius;
}
@Override
public double Area() {
double area;
area = (double) (radius * radius * 3.14);
return area;
}
}