티스토리 뷰
# 추상 클래스란?
추상 클래스란, 완성되지 않은 메서드를 포함하고 있는 클래스를 뜻한다.
아직 미완성인 클래스이기 때문에 인스턴스를 생성할 수 없으며, 상속을 통해서 자손 클래스에 의해 완성될 수 있다.
- 추상 클래스는 자손 클래스에게 어느정도 갖춰진 틀을 제공해줌으로써 효율적인 설계를 돕는다.
- 클래스 앞에 'abstract' 키워드를 붙임으로써 추상 클래스임을 표시한다.
- 추상 클래스는 추상 메서드를 포함하고 있다는 점을 제외하고는 일반 클래스와 동일하다. (멤버 변수와 메서드 역시 가질 수 있다.)
* 추상 메서드가 없는 클래스에도 abstract를 붙여 추상 클래스로 만들 수 있다!
-> 클래스의 인스턴스를 생성하지 못하게 하고 싶을 때 사용
* 왜 추상 클래스를 사용하는가?
추상화란, 기존 클래스들의 공통부분을 뽑아내 하나의 조상 클래스를 만드는 것이라고 할 수 있다.
추상 클래스에는 여러 클래스가 공통적으로 사용할 수 있는 메서드만 추상적인 틀로 짜놓고, 이를 구현하는 자손 클래스가 오버라이딩을 통해 구체화하여 사용하는 것이다.
이를 이용하면 동일한 추상 클래스를 상속하는 자손 클래스들은 동일한 역할을 수행하는 메서드(결과는 달라도)들을 모두 갖고 있을 것이라는걸 알고 사용할 수 있다.
=> 공통 조상을 둬서 중복을 제거하고, 자신에게 필요한 부분만 재정의 해서 사용할 수 있도록 한다.
또한, 추상 클래스를 이용하면 자손 클래스가 추상 메서드를 반드시 구현해서 사용하도록 강제할 수 있다.
- 일반 메서드의 경우는 자손 클래스에서 구현을 할수도, 안할수도 있지만 추상 메서드는 반드시 구현해야 한다
- 구현하지 않는 경우는 인스턴스를 생성할 수 없다.
# 추상 메서드
추상 메서드는 선언부만 작성되어있고 구현부는 작성하지 않은 채로 비워둔 메서드를 뜻한다.
< abstract 리턴 타입 메서드 이름( ); >
틀만 짜놓고 세부 내역은 추상 클래스를 상속하는 자손 클래스에서 상황에 맞게 구현해서 사용하라는 의미이다.
추상클래스를 상속받는 자손 클래스는, 조상인 추상 클래스의 추상메서드를 오버라이딩을 통해 모두 구현해야 한다.
- 추상 메서드를 모두 구현하지 않는 경우 자손 클래스 역시 추상 클래스로 지정해야 한다.
'JAVA' 카테고리의 다른 글
JAVA의 예외 처리란? (1) | 2021.11.26 |
---|---|
인터페이스란? (0) | 2021.11.25 |
자바 람다식과 스트림 (0) | 2021.11.12 |
자바를 자바라 (0) | 2021.10.14 |
객체 지향 프로그래밍이란 대체 멀까 (0) | 2021.09.11 |