반응형
1. 추상클래스( abstract class )
- 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다. 즉, 완성되지 못한 채로 남겨진 설계도를 말한다. 미완성 설계도로는 완성된 작품을 만들 수 없듯이 추상클래스로 인스턴스를 생성할 수 없다.
- 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다.( 확장 )
- 추상클래스는 새로운 클래스를 작성하는 데 있어서 바탕이 되는 클래스로서 중요한 의미를 가진다.
- 만약, 같은 크기의 Tv라도 기능의 차이에 따라 여러 종류의 모델이 있지만 사실 이들의 설계도는 아마 90% 정도 동일할 것이다. 서로 다른 여러 개의 설계도를 따로 그리는 것보다 이들의 공통부분만을 그린 미완성 설계도를 만들어 놓고 이 미완성 설계도를 이용해서 각각의 설계도를 완성하는 것이 효율적이다.
- 추상클래스는 키워드 'abstract'를 붙이기만 하면 된다.
- 이렇게 함으로써 이 클래스를 사용할 때 클래스 선언부의 abstract를 보고 이 클래스에는 추상클래스가 있으니 상속을 통해서 구현해야 한다는 것을 쉽게 알 수 있다.
abstract class 클래스이름 {}
2. 추상메소드( abstract method )
- 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 것이 추상메소드이다.
- 즉, 설계를 해놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메소드인 것이다.
- 메소드를 이와 같이 미완성 상태로 남겨놓은 이유는 메소드의 내용이 상속받는 클래스에 따라 달라질 수 있기 때문에 조상 클래스에서는 선언부만을 작성하고, 실제 내용은 상속받는 클래스에서 구현하도록 비워둔 것이다.
- 추상메소드 역시 메소드 앞에 키워드 abstract를 붙여주고 추상메소드는 구현부가 없으므로 괄호 {} 대신 문장의 끝을 알리는 ; 을 적어준다.
3. 추상클래스 작성
- 여러 클래스에서 공통적으로 사용될 수 있는 클래스를 바로 작성하기도 하고, 기존의 클래스의 공통적인 부분을 뽑아서 추상 클래스로 만들어 상속하는 경우도 있다.
- 상속이 자손클래스를 만드는 데 조상클래스를 사용하는 것이라면, 반대로 추상화는 기존의 클래스의 공통부분을 뽑아내서 조상클래스를 만드는 것이라고 할 수 있다.
반응형
'웹개발 > JAVA' 카테고리의 다른 글
[JAVA] 내부클래스( inner class ), 익명클래스( anonymous class ) (0) | 2022.01.27 |
---|---|
[JAVA] 인터페이스( interface ) (0) | 2022.01.26 |
[JAVA] 다형성( polymorphism ) (0) | 2022.01.25 |
[JAVA] 제어자( modifier ) (0) | 2022.01.24 |
[JAVA] 상속( inheritance ), 오버라이딩( overriding ) (0) | 2022.01.20 |