본문 바로가기

Java의 정석

추상 메서드(abstract method)

메서드는 선언부와 구현부로 구성되며 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 것이 추상 메서드이다.

 

메서드를 이와 같이 미완성으로 남겨 놓는 이유는 메서드의 내용이 상속받는 클래스에 따라 달라질 수 있기 때문에 조상 클래스에서는 선언부만을 작성하고 주석을 덧붙여 어떤 기능을 수행할 목적으로 작성되었는지 알려 주고 실제 내용은 상속받는 클래스에서 구현하도록 비워 두는 것이다.

 

추상 클래스로부터 상속받는 자손 클래스는 오버라이딩을 통해 조상인 추상 클래스의 추상 메서드를 모두 구현해주어야 하며 조상으로부터 상속받은 추상 메서드 중 하나라도 구현하지 않는다면 자손 클래스 역시 추상 클래스로 지정해 주어야 한다.

 

intellij에서 추상 메서드에 대한 구현부의 수를 출력

실제 작업내용인 구현부가 없는 메서드가 무슨 의미가 있을까 싶기도 하겠지만 메서드를 작성할 때 실제 작업내용인 구현부보다 중요한 부분이 선언부이다. 실제로 어떻게 구현되어있는지 몰라도 메서드의 이름, 매개변수, 리턴타입 등 선언부만 알고 있으면 되므로 내용이 없을지라도 추상 메서드를 사용하는 코드를 작성하는 것이 가능하며 실제로는 자손 클래스에 구현된 완성된 메서드가 호출되도록 할 수 있다.

'Java의 정석' 카테고리의 다른 글

인터페이스(interface)  (0) 2022.04.19
추상클래스의 작성  (0) 2022.04.18
추상 클래스(abstract class)  (0) 2022.04.14
객체를 배열로 다루기  (0) 2022.04.13
매개변수의 다형성  (0) 2022.04.12