[Java] 추상클래스(abstract class)
by Choi HyeSun
추상클래스(abstract class) - 정의
-
미완성 메소드를 포함하고 있거나, 객체(Object)를 생성하지 않으려는 클래스
-
추상메서드를 포함할 수 있음
-
클래스와 차이점
-
클래스 : 설계도
-
추상클래스 : 미완성 설계도
-
추상클래스의 필요성
-
자체로는 클래스로서의 역할을 못함
-
부모클래스로서 중요한 의미
- 새로운 클래스를 작성하는데 있어서 바탕이 됨
-
추상 클래스를 만들게되면, 다형성을 이용하여 자식클래스들을 추상부모클래스 타입으로 선언할 수 있게 됨
- 추상메서드들도 사용할 수 있다는게 Object클래스타입 배열과의 차이
추상메서드(abstract method) - 정의
-
선언부만 작성해놓고 구현부(body)는 작성하지 않은 채로 남겨둔 것
-
설계만 해두고 실제 수행될 내용을 작성하지 않았기 때문에 미완성 메소드
-
선언시 메서드 앞에 abstract를 붙여주고, 구현부가 없으므로 괄호 { } 대신 세미콜론’;’을 붙여줌
- abstract 리턴타입 메서드이름();
-
추상클래스를 상속받는 자식클래스의 경우, 오버라이딩을 통해 추상클래스를 모두 구현해야 함
- 하나라도 구현하지 않으면 그 자식클래스도 abstract(추상) 클래스로 선언해야함
→ 자식클래스가 구현했으면 하는 메소드들을 추상메소드로 지정
- 하나라도 구현하지 않으면 그 자식클래스도 abstract(추상) 클래스로 선언해야함
-
(메서드 사용자 측면에서) 메서드 선언부가 구현부보다 중요하므로, 추상메서드도 중요함
- 메서드를 사용하는 쪽에서는 구현은 중요하지 않고 어떻게 선언되었는지 알고있다면, 해당 메서드를 사용할 수 있음
추상메서드의 필요성
-
메서드의 내용이 상속받는 클래스에 따라 달라질 수 있기 때문
-
부모 클래스에서는 선언부만 작성
-
주석을 덧붙여 어떤 기능을 수행할 목적으로 작성되었는지 알려줌
-
실제 내용은 자식 클래스에서 구현하도록 비워둠
-
추상클래스를 상속받는 자식 클래스는 부모 클래스의 추상 메서드를 상황에 맞게 적절히 구현해주어야 함
-
Subscribe via RSS