단일상속(single inheritance)
::::특별한 Java Story 2013. 6. 6. 18:45 |/*내용을 복사 한 후 이클립스에서
ctrl + shift + F를 눌러주세요!!*/
//P.235 단일상속(single inheritance)
//결론인즉~~~ class TVCR extends TV,VCR 머 이런식으로 TV클래스와 VCR 클래스를 한꺼번에
//다중상속을 받을수 없다고 한다.. 그래 알았어..잘 기억할께! 근데!!!!!!!!!!!!!!!!!!!
//밑에 예문을 보아하니 얼래????????? 굳이 써야 한다면 다음 예문처럼도 가능은 하다는것을 보여주는듯하다.
//예문을 파헤쳐 보자!
package JavaTest;
class Tv1{ //Tv 클래스 맹글었엉~홍홍!
boolean power; //인스턴스 변수 선언~에효 지겹다..이쯤 됐으면 이제 이건 주석 처리 안해도
int channel = 11; // 돼지??
void power(){ //간지좀 나게 메서드 power,channelUp,channelDown 이렇게 세게 맹듬!
power =! power;
}
void channelUp(){
++channel;
}
void channelDown(){
--channel;
}
}
class VCR{ //VCR 클래스 만듬~
boolean power; //앗! 클래스에 있는 파워랑 똑같은 놈이다..ㅋㅋ
int channel = 12;
int counter = 0; //넌 뭐냐? (-_-)a
void power(){
power =! power;
}
void channelUp(){
++channel;
}
void play(){ //책에 있는거 다 쓸 필요성 못느껴 한개만 쓴다.ㅋ봐주라~
}
}
class TVCR1 extends Tv1{ //오~~ Tv 클래스 상속받았숨돠~~!! 잘보세용 (is-a)
VCR vcr = new VCR(); //얼래?! VCR 클래스를 포함 관계로 또 받았숨돠~! (has-a) 두개 다 이렇게 받아쓰면 된다!이거지!
int channel = vcr.channel; //Tv클래스에서 상속 받은 channel 대신에 VCR 클래스에서 포함관계로 받은
//channel을 사용하겠다 라고 하네욤! 한번 진짜 그런지 main 가서 출력!
void play(){
vcr.play();
}
void channelUp(){
vcr.channelUp(); //뭐~ 이런거지..위에꺼 하나 보면 전부다 보일거야!
}
}
public class TVCR {
public static void main(String[] args) {
TVCR1 tr = new TVCR1(); //우선 TVCR1 클래스 인스턴스 시키고!
System.out.println(tr.channel); // 역시 결과값은 포함관계를 명시해준 놈이 출력됐어...알겠지?!
}
}
//뭐 ~ 나름 놓칠수 있는 부분이었기에 이렇게 한번 정리 하는거임! 잘 기억하자!!
'::::특별한 Java Story' 카테고리의 다른 글
Super,Super() 조상클래스 생성자 만들기 (0) | 2013.06.07 |
---|---|
오버라이딩(Overriding) (0) | 2013.06.06 |
클래스간의 관계(포함관계) has-a (0) | 2013.06.06 |
상속(inheritance) (0) | 2013.06.06 |
변수의 초기화 (0) | 2013.06.04 |