IT/솔루션) Power Java
Power JAVA 10장 ) 인터페이스와 다형성 - Programming_5
돔찌
2019. 5. 12. 18:00
<2016. 10. 11. 12:32>
Power JAVA 10장 ) 인터페이스와 다형성 - Programming_5
=============Shape.java(슈퍼클래스)===================
/*
* 도형에 관한 클래스를 다형성을 이용하여서 작성하여 보자.
* 이 프로그램에서는 사각형이나 삼각형과 같은 많은 종류의 도형을 사용한다.
* 먼저 Shape이라는 수퍼 클래스를 작성한다. Shape은 모든 도형의 공통된 연산을 정의한다.
* 예를 들어서 도형의 면적을 반환하는 calcArea()와 같은 메소드를 정의한다.
* Shape을 상속받는 모든 도형들은 특정한 도형의 면적을 계산하여서 calcArea()를 통하여 반환한다.
*/
package Programming_5;
public class Shape {
String color;
double area;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double calcArea(Shape object) {
double area = 0;
if(object instanceof Rectangle) {
double a = ((Rectangle)object).getLength();
double b = ((Rectangle)object).getWidth();
area = a*b;
} else if(object instanceof Triangle) {
double a = ((Triangle)object).getBase();
double b = ((Triangle)object).getHeight();
area = (a*b)/2;
}
return area;
}
;
public String toString() {
return color + "," + area;
}
}
class Rectangle extends Shape {
private double length = 5;
private double width = 5;
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public String toString() {
return color + "," + area;
}
}
class Triangle extends Shape {
private double base = 5;
private double height= 5;
public double getBase() {
return base;
}
public void setBase(double base) {
this.base = base;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public String toString() {
return color + "," + area;
}
}
============ShapeTest.java=============
package Programming_5;
public class ShapeTest {
public static void main(String[] args) {
Shape myshape1;
Shape myshape2;
myshape1 = new Rectangle();
System.out.println(myshape1.calcArea(myshape1));
myshape2 = new Triangle();
System.out.println(myshape2.calcArea(myshape2));
}
}