추상 클래스, 메서드

정순동·2023년 12월 8일
0

자바기초

목록 보기
35/89

추상 클래스(abstract class)

추상 클래스란? 미완성 설계도에 비유할 수 있겠다. 클래스가 미완성이라는 것은 멤버의 개수에 관련된 것이 아니라, 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미이다.
따라서 추상 클래스로는 인스턴스를 생성할 수 없고 이 추상 클래스를 상속받은 자식 클래스에서, 해당 메서드를 구현한 후 인스턴스를 생성하여 사용할 수 있다.

추상 클래스
미완성 설계도, 인스턴스 생성불가.
미완성 메서드(추상 메서드)를 포함하고 있는 클래스

추상 클래스를 정의할 때에는 클래스 앞에 'abstract'만 붙히면 된다. 클래스 선언부에 해당 키워드가 붙어 있으면 코더들은 추상 메서드가 있으니 구현해서 사용하면 된다는 것을 알 수 있다.

	abstract class ClassName {
    	...
    }

추상 클래스는 추상 메서드를 포함하고 있다는 것을 제외하고는 일반 클래스와 다르지 않기에 생성자, 멤버변수와 메서드를 가질 수 있다.

추상 클래스의 작성

상속이 자손 클래스를 만드는데 조상 클래스를 사용하는 것이라면, 이와 반대로 추상화는 기존의 클래스의 공통부분을 뽑아내서 조상 클래스로 만드는 것이라고 할 수 있다.
상속 계층도를 따라 아래로 내려갈수록 추상화 되어있는 내용들이 구체화 되고 반대로 올라갈수록 공통요소만 남게 되어 추상화 된다.

추상 메서드(abstract method)

메서드는 선언부와 구현부로 구성되어 있지만, 선언부만 작성하고 구현부를 작성하지 않은 채로 남겨 둔 것이 추상 메서드이다. 메서드를 이와 같이 미완성 상태로 남겨 놓은 이유는 메서드의 내용이 상속받는 클래스에 따라 달라질 수 있기 때문에 조상 클래스에서는 선언부만 작성하고, 주석을 사용해 어떤 기능을 하는 메서드를 만들면 되는지 알려주기만 하면 된다.
추상 메서드 역시 키워드는 'abstract'이고, 메서드 앞에 붙여주면 된다.

	abstract class ClassName {
    	// 클래스 이름을 반환
    	abstract String classNameIs
    }

0개의 댓글