추상클래스(abstract class)
미완성 메서드(추상메서드)를 포함하고 있는 클래스
상속을 통해서 자손 클래스에 의해서만 완성될 수 있다.
abstract class 클래스이름 {...}
추상메서드(abstract method)
선언부만 작성하고 구현부는 작성하지 않은 채 남겨 둔 메서드
메서드의 내용이 상속받는 클래스에 따라 달라질 수 있기 때문에 미완성 상태로 남겨둔다.
(오버라이드 해서 사용하는 것과 뭐가 다르지?
-> 굳이 추상메서드로 선언하는 이유는 자손클래스에서 추상메서드를 반드시 구현하도록 강요하기 위해서이다.
만일 추상메서드로 정의되어 있지 않고, 빈 몸통만 가지도록 정의되어 있다면, 상속받는 자손클래스에서는 이 메서드들이 온전히 구현된 것으로 인식하고 오버라이딩을 통해 자신의 클래스에 맞도록 구현하지 않을 수도 있기 때문이다.)
abstract 리턴타입 메서드이름();
주의!
추상클래스로부터 상속받는 자손클래스는 오버라이딩을 통해 조상인 추상클래스의 추상메서드를 모두 구현해주어야 한다. 만일 하나라도 구현하지 않는다면, 자손클래스 역시 추상클래스로 지정해 주어야 한다.
+ 추가 내용
추상화 : 클래스 간의 공통점을 찾아내어 공통의 조상을 만드는 작업
구체화 : 상속을 통해 클래스를 구현, 확장하는 작업
'JAVA' 카테고리의 다른 글
[Java] 컬렉션 프레임웍(Collections Framework) (0) | 2023.07.06 |
---|---|
[Java] 인터페이스(interface) (0) | 2023.07.06 |
[Java] 다형성(polymorphism) (0) | 2023.07.05 |
[Java] 상속(Inheritance) (0) | 2023.07.05 |
[JAVA] DTO와 VO (0) | 2023.05.01 |