추상클래스(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

+ Recent posts