추상클래스(abstract class)
추상 - 클래스간의 공통점을 찾아내서 공통의 조상을 만드는 작업.
구체화 - 상속을 통해 클래스를 구현, 확장하는 작업.
abstract class Player{
boolean pause;
int currentPos;
Player(){
pause = false;
currentPos = 0;
}
abstract void play(int pos)
abstract void stop();
void play(){
play(currentPos);
}
void pause(){
if(pause){
pause = false;
play(currentPos);
} else{
pause = true;
stop();
}
}
}
1.추상클래스란?
추상 메서드(미완성 메서드)를 포함하고 있는 클래스
- 인스턴스를 생성 할 수 없다.
- 추상 클래스의 손자 클래스에서 추상메서드의 구현부를 완성해야 한다.
- 기존 클래스의 공통 부분을 뽑아서 추상클래스를 만든다.
2.추상메서드
- 선언부만 있고 구현부가 없는 메서드.
- 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용.
- 자손클래스는 오버라이딩을 통해 조상인 추상클래스의 추상메서드를 모두 구현 해 주어야 한다.
abstract class Player{
absract void play (int pos);
abstract void stop();
}
class AudioPlayer extends Player{
void play(int pos)
void stop();
}
abstract class AbstractPlayer extends Player{
void play(int pos)
}
인터페이스(interface)
1.인터페이스란?
- 실제 구현된 것이 전혀없는 설계도.
- 추상메서드와 상수만을 멤버로 가질 수 있다.
- 클래스 작성에 도움을 줄 목적으로 사용된다.
- 구성요소는 추상메서드와 상수만 가능하다.
- 다중상속이 허용된다.
- Object클래스와 같은 최고 조상이 없다.
- 서로 관계없는 클래스들에게 관계를 맺어줄 수 있다.
'JAVA의 정석' 카테고리의 다른 글
7.객체지향개념2 - 다형성(polymorphism) (0) | 2015.07.20 |
---|