추상클래스란?
추상 클래스는 이전에도 설명했듯이 미완성 설계도에 비유할 수 있다.
미완성 메서드를 가지고 있기 때문에 이에 비유한다.
추상 클래스는 인스턴스를 생성할 수 없다.
상속을 통한 자식클래스에서 메서드의 내용을 구현하게 된다.
추상클래스를 사용하기 위해서는 다음과 같이 abstract
키워드를 사용하면된다.
abstract class 클래스이름{
}
꼭 추상 메서드가 없더라도 앞에 abstract
를 넣으면 추상 클래스로 사용이 가능하다.
추상메서드란?
추상 메서드는 선언만 해놓고 구현을 안해놓은 메서드라 할 수 있다.
실제 수행될 내용은 적어놓지 않았지만 이런 기능이 있을거다 라고 모호하게 작성한 것을 말한다.
왜 구현을 안하고 남겨 놓는 이유는 상속받는 클래스에 따라 메서드 내용이 달라질 수 있기 때문이다.
예를들어 Animal
이라는 클래스에 추상클래스인 talk()
가 있다면
이를 Cat
과 Dog
가 상속을 받았다면 서로 다른 내용으로 짖기 때문에 다를것 이다.
추상 클래스와 메서드는 다음과 같이 사용된다.
abstract class Animal{
abstract void talk();
}
class Cat extends Animal{
void talk(){
System.out.println("미야옹");
}
}
class Dog extends Animal{
void talk(){
System.out.println("멍멍");
}
}
추상 메서드는 특이할 때 선언할때 abstract
를 붙이고 마지막은 꼭 메서드와 다르게 ;
를 붙여주는 것이 특징이다.
이러한 추상 클래스를 통해서 각 클래스에 공통된 메서드가 있다면 추상 클래스를 만들어 재사용하기 쉽게 만드는 것도 한가지 방법이다.
이렇게 공통된 부분으로 묶어서 추상 클래스를 만들어 상속시키면 다양한 장점이 생긴다.
- 같은 부모를 가져 배열로 묶어서 관리할 수 있다.
- 코드가 깔끔해진다.
Reference
- 자바의 정석
'Java > Java' 카테고리의 다른 글
[Java/Study] 내부 클래스 (0) | 2021.09.11 |
---|---|
[Java/Study] 인터페이스 (0) | 2021.09.11 |
[Java/Study] 다형성 (0) | 2021.09.10 |
[Java/Study] 제어자 (0) | 2021.09.09 |
[Java/Study] Package 와 Import 및 터미널로 자바 실행방법 (0) | 2021.09.08 |