Java

[ java ] 추상 클래스(abstract class) 2

JooKit 주킷 2021. 2. 9. 11:18
목차 접기
728x90
반응형

추상 메서드를 모두 구현하지 않고 1개만 구현한 추상 클래스

package beginJava;

public abstract class NoteBook extends Computer {

    @Override
    public void display() {
        System.out.println("DeskTop display()");
    }
}
  • 상속 받은 추상 클래스의 추상 메서드를 모두 구현하지 않으면 하위 클래스도 추상 클래스가 된다.
  • 추상 클래스가 된 하위 클래스에서는 구현되지 않은 나머지 추상 메서드에 대해서 구현하면 아래와 같이 추상 클래스가 되지 않는다.
package beginJava;

public class MyNoteBook extends NoteBook {
    @Override
    public void typing() {
        System.out.println("DeskTop typing()");
    }
}
  • 상위 클래스의 추상 메서드 구현을 위임받아 메서드를 구현했다.
  • 모든 추상 메서드가 구현된 클래스이므로 abstract 예약어를 사용하지 않는다.

모든 메서드가 구현된 추상 클래스

package beginJava;

public abstract class AbstractTV {
    public void turnOn() {
        System.out.println("전원을 켭니다.");
    }
    public void turnOff() {
        System.out.println("전원을 끕니다.");
    }
}
  • 위와 같이 모든 메서드가 구현이 되어 있는데도 추상 클래스가 될 수 있다.
  • 완벽한 TV 기능이 구현된 것이 아닌 TV의 공통 기능만을 구현해 놓은 것이다.
    이 클래스는 생성해서 사용할 목적이 아닌 상속만을 위해 만든 추상 클래스이다.
    이 경우에는 new 예약어로 인스턴스를 생성할 수 없다.
728x90
반응형
LIST