안녕하세요.
이번 시간에는 추상 클래스에 대해서 알아보는 시간을 가져보도록 하겠습니다.
보통 클래스를 설계도에 비유한다면, 추상 클래스는 완성되지 않은 설계도라고 말할 수 있습니다.
클래스 내부에 추상메서드를 포함하고 있는 클래스를 추상 클래스라고 하고 추상 클래스는 미완성 클래스라고 볼 수 있습니다.
1. 추상클래스의 개념
추상적 抽象的
1.관형사·명사 어떤 사물이 직접 경험하거나 지각할 수 있는 일정한 형태와 성질을 갖추고 있지 않은. 또는 그런 것.
2. 관형사·명사
(네이버 국어사전 발췌)
추상 클래스는 미완성 클래스이므로 자기 자신으로써는 인스턴스를 생성할 수 없고 조상으로써이 역할을 할때 즉 상속을 통해서 자식을 통해서만 미완성인 상태에서 완성으로 나아갈 수 있습니다.
( 말이 조금 어려울 수도 있습니다. ㅜㅜ )
즉, 추상클래스 자체만으로는 중요한 의미를 가질 수 없지만, 새로운 자손 클래스를 생성하는데 근본이 되는 중요한 조상 클래스로써의 역할을 합니다.
또한, 추상 클래스도 추상 메서드를 포함하고 있을 뿐 일반 클래스와 동등하게 생성자가 있으며, 멤버변수와 메서드도 가질 수 있습니다.
2. 추상메서드
보통 우리가 부르는 메서드는 선언부와 구현부로 구성되어 있습니다만, 추상 메서드는 선언 부만 있고 구현부가 작성되어 있지 않은 형태를 말합니다. 즉, 메서드에 대한 설계만 하고 구현은 하지 않았기 때문에 미완성이라고 말합니다.
메서드를 완성되지 않은 형태로 정의해놓은 이유는 ( 추상 메서드를 만드는 이유는 ) 메서드의 구현내용이 자식클래스마다 각각 달라질 수 있는 상황을 고려해서 조상클래스에서 추상메서드로 정의해놓고 자식클래스에서 상속받아서 각자 구현을 하라고 위임하는 역할을합니다. ( 말이 굉장이 장황한가요?? ^^;;; 무튼... )
추상메서드 역시 추상 메서드와 마찬가지로 키워드로 abstract를 사용하고 아래와 같이 정의합니다.
abstract 리턴 타입 메서드이름();
추상클래스로 부터 상속 받은 자손클래스는 추상메서드를 오버라이딩을 함으로써 자신에게 맞는 적절한 동작으로 구현합니다. 또한 상속받은 자손클래스는 부모에게 구현된 추상메서드를 구현하지 않으면 안 됩니다. ( 강제사항 )
아래 추상 클래스의 예제 소스를 보시기 바랍니다.
위 소스의 설명은 그냥 눈으로만 보셔도 쉽게 이해가 되실 것으로 생각되어 생략합니다. ^^;;
혹시나 설명을 원하시는 분은 댓글을 남겨주세요.
이 포스트가 도움이 되셨다면 공감버튼을 눌러주시기를 부탁드립니다.
공감버튼은 로그인을 하지 않으셔도 누르실 수 있습니다.
그럼 다음시간에 만나요.
^^*
예외처리 ( exception handling ) 1 (0) | 2019.04.01 |
---|---|
인터페이스 ( interface ) (0) | 2019.03.30 |
참조변수 형변환 (0) | 2019.03.14 |
제어자(Modifier), 접근제어자(access modifier), static, final, abstract, 다형성 (0) | 2019.03.13 |
클래스의 관계, 단일 상속, Object 클래스, 오버라이딩, super, super() (0) | 2019.03.12 |
댓글 영역