추상 클래스
- 개념
1) 실제들 간의 공통되는 특성을 추출한 것
ex1) 새, 곤충, 물고기 ==> 동물(추상)
ex2) 삼성, 현대, 롯데 ==> 회사 (추상)
2) 자바의 추상?
실제 클래스들의 공통된 필드와 메서드를 정의한 클래스
추상 클래스는 실제 클래스의 부모 클래스 역할
단독으로 객체 생성을 하지 못한다
cf) 실제 클래스 : 객체를 만들어 사용할 수 있는 클래스
Animal.class (추상클래스) - 공통메서드, 추상메서드
(상속)
Bird.class Insect.class Fish.class (실제 클래스)
- 추상클래스의 용도
1) 실제 클래스들의 공통된 필드와 메서드의 이름을 통일
2) 실제 클래스를 작성할 때 시간 절약
- 실제 클래스는 추가적인 필드와 메서드만 선언
3) 실제 클래스 설계 규격을 만들고자 할 때
- 실제 클래스가 가져야할 필드와 메서드를 추상 클래스에 미리 정의
- 실제 클래스는 추상 클래스를 무조건 상속 받아서 작성
abstract class Player{ // 추상클래스는 abstract를 붙인다
private String kind;
private String name;
public Player(String kind, String name) {
this.kind = kind;
this.name = name;
}
public String getKind() {
return kind;
}
public String getTeam() {
return name;
}
public abstract void play(); // 추상메서드
}
class BasePlayer extends Player{ // 추상클래스를 상속받은 실제클래스
public BasePlayer(String name) {
super("야구선수", name);
}
@Override
public void play() { // 추상 메서드를 재정의
System.out.println(this.getTeam()+"가 홈런을 쳤다");
}
}