JAVA1 Poly 숙제 (임시저장)
// 추상 클래스를 이용한 다형성
abstract class Design
{
int a = 5, b = 7; // 밑변, 높이 or 반지름
double area;
public abstract void calc(); // 계산
public abstract void disp(); // 출력
}
class PolyEx
{
public static void main( String[] args )
{
Rect r = new Rect();
Tru t = new Tri();
Circle c = new Circle();
r.calc();
r.disp();
t.calc();
t.disp();
c.calc();
c.disp();
}
}
풀이
// 추상 클래스를 이용한 다형성
abstract class Design
{
int a = 5, b = 7; // 밑변, 높이 or 반지름
double area;
public abstract void calc(); // 계산
public abstract void disp(); // 출력
}
class Rect extends Design
{
public void calc()
{
area = a * b;
}
public void disp()
{
System.out.println( "사각형의 넓이 : " + area );
}
}
class Tri extends Design
{
public void calc()
{
area = a *b / 2.0;
}
public void disp()
{
System.out.println( "삼각형의 넓이 : " + area );
}
}
class Circle extends Design
{
public void calc()
{
area = a * a * Math.PI;
}
public void disp()
{
System.out.println( "원의 넓이 : " + area );
}
}
class PolyEx
{
public static void main( String[] args )
{
// 가장 효율적인 방법
Design de[] = { new Rect(), new Tri(), new Circle() };
for( Design d : de )
{
d.calc();
d.disp();
}
/*
// 노가다성
Rect r = new Rect();
Tri t = new Tri();
Circle c = new Circle();
r.calc();
r.disp();
t.calc();
t.disp();
c.calc();
c.disp();
*/
}
}