** interface **
자바는 기본적으로 다중 상속을 금지하고 있다.
그래서 다중 상속처럼 구현을 가능하게 해준는 것이 인터페이스로
implement해서 사용한다.
C++에선 클래스에서 가상 함수로 만들어서 강제 오버라이딩 하도록 하였다.
하지만 자바에선 인터페이스라고 하여 따로 존재한다.
public interface Player {
public void play();// abstract 자동 삽입
}
이런 형식으로 만들어 각 클래스에선 이렇게 적용한다.
public class GomPlayer implements Player{
@Override
public void play() {
System.out.println("곰플레이어 동영상 재생하다");
}
}
public class Mp3Player implements Player {
@Override
public void play() {
System.out.println("mp3 player가 mp3 재생하다");
}
}
--계층구조가 형성 되었으므로 Player를 적용한 모든 클래스를 일괄적으로 해당 인터페이스에서 만든 메서드 수행 가능
public class PlayerService {
public void simplePlay(Player p1) {
p1.play();
}
public void allPlay(Player[] pa) {
for(int i=0;i
if(pa[i] instanceof CdPlayer){
((CdPlayer) pa[i]).insertCd();
}
pa[i].play();
}
}
}
'Code Archive > JAVA' 카테고리의 다른 글
| Step10. Wrapper class, Nested(inner) class (0) | 2014.09.12 |
|---|---|
| Step9. Set, List, Map, Generic, Iterator, 로또 출력 프로그램 (0) | 2014.09.12 |
| Step7. Polymorphism(다형성) 클래스 계층구조를 이용하여 구현 (0) | 2014.09.12 |
| Step6. 배열, Inheritance(상속) (0) | 2014.09.12 |
| Step5. 변수의 범위, Has a 관계 (0) | 2014.09.12 |