youngfromnowhere

[Java] Abstract Class 간단한 메모 본문

Java

[Java] Abstract Class 간단한 메모

곽일땡 2022. 11. 18. 03:57

추상클래스를 작성하고자 할 때,

 

딱히 abstract 제어자를 쓰지 않고

 

그냥 내용만을 비워둘 수도 있다.

 

다만 이렇게 하면 인스턴스를 만들 때 에러를 띄우지 않는다.

 

다시 말하면 abstract 제어자는

 

해당 클래스의 인스턴스를 만들지 못하게 함으로써

 

오로지 상속을 통해서만 쓰이도록 강제하는 역할을 한다.

 

(abstract method의 경우도 abstract 제어자는

 

상속 클래스에서 override를 통해 반드시 구현되도록

 

강제하는 역할을 한다.)

 

package AbPrac2;

class Bird {
    void test_method() {}
}

abstract class Phone {
    abstract void test_method2();
}

public class Main {
    public static void main(String[] args) {
        Bird bird = new Bird();
        Phone phone = new Phone();
    }
}

이렇게 하고 컴파일하면,

Phone을 instantiate하는 line에서만 에러가 발생한다.