상속(inheritance)
::::특별한 Java Story 2013. 6. 6. 16:05 |/*내용을 복사 한 후 이클립스에서
ctrl + shift + F를 눌러주세요!!*/
//P.227 상속
//상속..그래 하도 많이 봐서 알겠는데..언제 써먹냐가 가장 중요한 문제지..
//간단히 줄이면 한군데만 수정할테니 니들이 가져다 써~..ㅋㅋ 뭐 이런식이겠지?
//예문으로 갑니다!
package JavaTest;
class Tv{ //Tv 클래스 한개 만들고~
boolean power; // 전원 켰다 껐다..OK?
int channel; // 요건 채널이고~
void power(){ // ①번 메서드 맹글고~ 얜 파워On/Off 메서드
power =! power;
}
void channelUp(){ // ②번 메서드 얜 채널 올리고~
++channel;
}
void channelDown(){ // ③번 메서드 얜 채널 내리고~~
--channel;
}
// 여기까지 하고 잠깐!! 나 밑에다가 이 Tv클래서 녀석 상속받는 클래스를 하나 설계할건데...
// 책 열심히 본사람은 알거야~ 위에 메서드는 상속 된다? 안된다? ....된다!!!
// 잠깐 해깔리지 말자! 메서드까지는 상속되고, ..앞에서 공부한 '생성자'는 상속이 안된다.!!!^
// 대충보고 넘어가지 말고, 외워라 임뫄~! 주입식 교육이 최고얌!
}
class CaptionTv extends Tv{ //상속 키워드 'extends'써주고.. Tv를 상속했숨돠~
// Tv 클래스의 power 와 channel 은 상속됐으니 적지 않아도~~
boolean caption; //caption?? 뭐 자막을 키거나 끄는것 같당~ㅋ 쓸데없다~
void displayCation(String text){
if(caption==true){ //자꾸 책은 삭제해도 된다..개념이 강해서 짜증나..난 true 를 써줬어!
System.out.println(text); //true 일때 출력하라 String text 값(매개변수값을~~)
}
}
}
public class CaptionTvTest {
public static void main(String[] args) {
// 클래스의 인스턴스 변수를 써먹자!
CaptionTv ct = new CaptionTv(); //두개의 클래스중에서 Tv를 상속받은 CaptionTv클래스만 인스턴스시킴!
ct.power = true; //CaptionTv에 없는 power변수를 썼어~ 상속됐으니 지맘이겠지.ㅋ
ct.channel = 11; //채널도 썼어~(부모클래스(Tv클래스)에 있는놈)
ct.channelUp(); //부모클래스에 있는 채널업! 메서드도 썼엉~
System.out.println(ct.channel); //Up시킨 다음 채널 값을 물어보는 거겠지?
ct.caption = false; //자식클래스(자기자신)에 있는 if 문 caption 값!~~ true 로 바꿔보셈!
ct.displayCation("세현아 롤 그만해 죽여버릴거야!");
}
}
//보다가 틀린것 있으면 말해~ 이제 생성자 시작일뿐~
'::::특별한 Java Story' 카테고리의 다른 글
단일상속(single inheritance) (0) | 2013.06.06 |
---|---|
클래스간의 관계(포함관계) has-a (0) | 2013.06.06 |
변수의 초기화 (0) | 2013.06.04 |
클래스메서드(static 메서드) 와 인스턴스메서드 (0) | 2013.06.03 |
인스턴스변수, 클래스(static)변수 (0) | 2013.06.03 |