1. 추상 클래스(abstract class)
- 미완성 설계도. 미완성 메서드를 가지고 있는 클래스
- 다른 클래스 작성에 도움을 주기 위한 것. 인스턴스 생성 불가
- 상속을 통해 추상 메서드를 완성해야 인스턴스 생성가능
abstract class Player{
abstract void play(int pos);
abstract void stop();
}
-----------------------------------------------
Player p = new Player();
class AudioPlayer extends Player{
void play(int pos){...}
void stop(){...}
}
AudioPlayer ap = new AudioPlayer();
2. 추상 메서드(abstract method)
3. 추상클래스의 작성
- 여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하거나 기존 클래스의 공통 부분을 뽑아서 추상클래스를 만든다.
abstract class Unit{
int x,y;
abstract void move(int x, int y);
void stop(){
};
}
class Marine extends Unit{
void move(int x, int y){
System.out.println("Marine[ x= "+x +",y="+y+"]");
stimPack();
}
void stimPack(){
System.out.println("스팀팩 사용");
}
}
class Tank extends Unit{
void move(int x, int y){
System.out.println("Tank[ x= "+x +",y="+y+"]");
attack();
}
void attack(){
System.out.println("공격!!");
}
}
public class abstractTest {
public static void main(String[] args) {
Unit[] group = {new Marine(), new Tank()};
group[0].move(100,200);
group[1].move(300,400);
}
}