7.1 추상클래스



[Flying 클래스]


public abstract class Flying {   // 추상클래스
public int wingcnt = 2;
public boolean wheelstat = true;
abstract public void takeoff( );   // 추상메소드
abstract public void landing( );   // 추상메소드
public void output( )
{
 System.out.println(wingcnt + " " + wheelstat);
}
}



[Airplane 클래스 소스]


public class Airplane extends Flying {

 @Override
 public void takeoff()   //오버라이딩 → 이주석은 책에 써놔서 표기해 놓는다. 원래는 자동으로 표기된다.
{
  // TODO Auto-generated method stub
 super.output( );
 System.out.println("비행기 이륙");
 wheelstat = false;  
}
 @Override
 public void landing() //오버라이딩→ 이주석은 책에 써놔서 표기해 놓는다. 원래는 자동으로 표기된다.
{
  // TODO Auto-generated method stub
 super.output( );
 System.out.println("비행기 착륙");
 wheelstat = true;
}
}


[AbstractTest 클래스 소스]


public class AbstractTest {
public static void main(String[ ] args)
{
 Airplane a = new Airplane( );
 a.takeoff( );
 a.landing( );
 Flying f;
 //f = new Flying( ); 추상클래스의 인스턴스 생성 (오류)
 f = (Flying) a;
 f.takeoff( );
 System.out.println(f.wheelstat + " " + f.wingcnt);  
}
}