본문 바로가기

JAVA

[Java] 추상클래스(abstract class)

추상클래스(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