1. 추상클래스

 - 추상클래스(abstract class)는 추상적인 클래스로서 그 구현이 덜 되었거나 또는 아직 미완성 클래스이므로,

 실제 인스턴스 (또는 객체)를 생성할 수 없도록 한 클래스 이다.

 다시 말해서 추상 클래스는 객체가 가지고 있는 특성들을 추상화 시켜놓았을 뿐 아직 구체화 시키지 못한

 클래스 이므로, 이 추상 클래스를 상속하는 하위클래스는 추상클래스인 상위 클래스에서 완전히 구현하지 못한

 부분들을 완전하게 구현해 주어야만 하위클래스에 대한 객체 생성이 가능하다.

 이에 그렇지 못할 경우 하위클래스는 하위클래스와 같이 미완성이므로 자체적으로 객체를 생성할 수 없고,

 이 하위 클래스는 다시 추상클래스가 된다.


2. 추상메소드

 - 추상메소드는 추상클래스와 마찬가지로 아직 구현이 이루어지지 않고, 프로토타입만을 가지고 있는 메소.

 추상메소드는 미완성 메소드이므로 그 몸체(Body)를 가질 수 없다.

 추상메소드는 클래스가 가져야 할 인터페이스에 대한 프로토타입을 정의하고 있다. 추상메소드를 포함하는

 클래스는 반드시 추상 클래스로 선언되어야 한다. 추상메소드를 포함하고 있는 추상클래스를 상속받는

 클래스는 반드시 추상클래스가 포함하고 있는 모든 추상메소드를 구현해주어야 한다. 클래스처럼 사용할 수 도

 있고, 인스턴스의 생성도 가능하지만 추상메소드를 모두 구현해주지 못한 경우에는 하위클래스도 완전히

 구현이 이루어지지 않은 추상메소드를 포함하게 되며, 이때 반드시 추상클래스로 선언되어야 한다.

 그렇지 않을 경우 에러가 발생한다.


3. 추상클래스의 선언방법

abstract class 클래스 {
   abstract void 메소드;
}

//정상적으로 선언
abstract class Human {
  abstract void iSee();
}


+ Recent posts