매니저/JAVA1

JAVA1 Poly 숙제 (임시저장)

cdprkr2077 2011. 12. 23. 20:47


// 추상 클래스를 이용한 다형성

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();
  */
 }
}