Java
[JAVA] 추상 클래스(Abstract Class)란?
YEJI ⍢
2022. 12. 27. 14:49
728x90
추상 메소드(Abstract method)란?
반드시 오버라이딩(overriding)해야 사용할 수 있는 메소드(method)를 의미합니다.
추상 클래스(Abstract Class)란?
Abstract로 지정된 클래스(class)는 객체(object) 생성이 불가능한 클래스입니다.
추상 메소드(abstract method)가 하나라도 포함되어 있으면 추상 클래스(abstract class)입니다.
추상 메소드(Abstract method)의 목적
추상 메소드를 상속받는 하위 클래스가 반드시 추상 메소드를 구현하도록 하기 위해서 입니다.
추상 클래스 코드
public abstract class Room_light {
abstract void askForTrunOn();
abstract void askForTrunOff();
public void turnOn() {
System.out.println("A bright room");
}
public void turnOff() {
System.out.println("A dark room");
}
}
추상 클래스(abstract class)는 추상 메소드(abstract method) 뿐만 아니라 일반 메소드(method)도 포함할 수 있습니다.
위에 보이는 코드처럼 추상 메소드(abstract method)는 body 부분을 구현하지 않으며, 상속받은 하위 클래스에서 구현해야 됩니다.
추상 클래스를 상속받는 클래스 코드
public class Room323 extends Room_light {
@Override
void askForTrunOn() {
System.out.println("???: Can I turn on the room light?");
System.out.println("???: Yes sure.");
}
@Override
void askForTrunOff() {
System.out.println("???: Can I turn off the room light?");
System.out.println("???: Yes sure.");
}
@Override
public void turnOn() {
System.out.println("-------------------------------------");
System.out.println("From now on, the room 323 is bright.");
}
@Override
public void turnOff() {
System.out.println("-------------------------------------");
System.out.println("From now on, the room 323 is dark.");
}
}
추상 클래스(abstract class)를 상속받은 하위 클래스에서
오버라이딩(Overriding)을 통해 메소드(method)의 body 부분을 구현하게 됩니다.
메인 메소드(main method)
public static void main(String[] args) {
Room323 roomMate = new Room323();
roomMate.askForTrunOff();
roomMate.turnOff();
}
추상 클래스(abstract class)를 상속받은 클래스(class)의 객체를 생성하면 메소드(method)를 잘 사용할 수 있습니다.
위에도 말했듯이 추상 클래스(abstract class)는 객체(object)를 생성할 수 없습니다.
◡̈