728x90
반응형
개념
- 상황에 맞게 내용을 재정의해서 사용할 수 있는 개념이다.
- 상속하는 클래스 내에서 같은 시그니처의 메소드로 오버라이딩 될 수 있다.
- Virtual(가상)과는 달리 선언한 추상 함수는 상속받은 하위 클래스에서 반드시 구현부를 구현해야한다.
(하위 클래스에 반드시 재정의하여 사용해야한다. 자기 자신은 선언만 가능하다. 또한 추상화는 Interface와 비슷하다)
- 스스로 인스턴스를 가질 수 없다.
- 멤버변수, 멤버함수 등이 구현 가능하다.
- 단 1개만 상속 받을 수 있다.
- 내용은 Interface와 비슷하나, 사용 방법은 Virtual과 비슷하기 때문에 Virtual과 Abstract를 헷깔리지 않도록 해야한다.
(사용 목적에 따라 명확하게 구분하여야한다.)
사용 목적
- 상속관계에 있는 하위 클래스의 공통된 특징이나 구조를 형성하기 위한 목적으로 사용한다.
- 일반 클래스를 통해서도 가능하나, 특징이나 구조를 강제하기 위함이다.
(말로 "이 클래스는 이렇게 사용하세요. 저렇게 사용하세요" 라고 해봤자 다른 프로그래머가 이를 준수하지 않으면 코드가 망가진다. 하지만 추상 클래스를 이용한다면 위 같이 말을 할 필요가 없다. 추상 클래스 자체가 이러한 설명을 담고 있기 때문이다.)
사용 예시
반응형
'프로그래밍 > 기본기ㆍ자료구조' 카테고리의 다른 글
Interface와 abstract의 차이 (0) | 2020.04.11 |
---|---|
Interface (인터페이스) (0) | 2020.04.11 |
Virtual (가상 메소드) (0) | 2020.04.10 |
Queue (큐) (2) | 2020.04.10 |
Array와 ArrayList의 차이 (0) | 2020.04.09 |