반응형
추상클래스(abstract class)란?
클래스 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다.
단어 뜻 그래도 완성되지 못한 채로 남겨진 설계도를 말한다.
하지만 우리가 생각하는 것 처름 클래스가 미완성이라 아무것도 없는 것이 아니라
단지 미완성 메서드(추상메서드)를 포함하고 있다는 의미이다.
🙄 그래서 추상 클래스 사용하는 이유는 뭘까?
→ 자식 클래스에서 반드시 사용되어야 하는 메소드를 작성해야 할 때이다.
🙄그러면 그냥 오버라이딩해서 사용하면 되지 않나?
→ 상속받은 자식 클래스에서는 메소드들이 완전히 구현된 것으로 인식하고 오버라이딩하지 않을 수 있기 때문에 추상 클래스를 사용한다.
반드시 사용되어야 하는 메소드를 추상 클래스에 추상 메소드로 선언해 놓으면, 이 클래스를 상속받는 모든 클래스에서는 이 추상 메소드를 반드시 재정의해야 한다.
💡문법💡
abstract class 클래스이름 {
...
abstract 반환타입 메소드이름();
...
}
✅ 참고
추상메서드를 포함하고 있지 않은 클래스에도 키워드 'abstract'를 붙여서 추상클래스로 지정할 수도 있다.
추상메서드가 없는 완성된 클래스라 할지라도 추상클래스로 지정되면 클래스의 인스턴스를 생성할 수 없다.
추상메서드(abstract method)란?
메서드는 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것이 추상 메서드이다.
즉, 설계만 해 놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메서드인 것이다.
🙄 미완성인 상태로 남겨 놓는 이유가 뭘까?
→ 메서드의 내용이 상속받는 클래스에 따라 달라질 수 있기 떄문에 조상 클래스에서는 선언부만을 작성하고,
주석을 덧붙여 어떤 기능을 수행할 목적으로 작성되었는지 알려 주고, 실제 내용은 상속받는 클래스에서 구현하도록 비워 두는 것이다.
💡문법💡
/* 주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명한다. */
abstract 리턴타입 메서드이름();
* 참고 : Java의 정석,
http://www.tcpschool.com/java/java_polymorphism_abstract
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 메소드에 예외 선언하기 (throws) (0) | 2022.11.21 |
---|---|
[JAVA] 예외 발생시키기(throw) (0) | 2022.11.21 |
[ JAVA ] 다형성 - 매개변수의 다형성, 여러 종류의 객체 배열 (0) | 2022.10.27 |
[ JAVA ] Instanceof 연산자란? Instanceof 연산자 사용방법 (0) | 2022.10.27 |
[ JAVA ] 다형성 - 참조변수의 형변환 (0) | 2022.10.27 |