'is-a'에 해당되는 글 1건

  1. 2013.06.06 단일상속(single inheritance)

/*내용을 복사 한 후 이클립스에서

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
Posted by 옆모습오빠
: