1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | package Extends; class Tv { boolean power; // 전원상태(on/off) int channel; // 채널 void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv { boolean caption; // 캡션상태(on/off) void displayCaption(String text) { if (caption) { // 캡션 상태가 on(true)일 때만 text를 보여 준다. System.out.println(text); } } } class CaptionTvTest { public static void main(String args[]) { CaptionTv ctv = new CaptionTv(); /*ctv라는 참조변수가 CaptionTv라는 인스턴스를 참조한다.*/ //여기서 CaptionTv는 Tv의 모든 기능을 상속받았다. //여기서 말하는 TV의 상속기능은 위에 나온 인스턴스변수이며 메소드또한 마찬가지임 //자식클래스의 CaptionTvTest에서는 따러 caption 상태만 추가 됨 //최초 channel은 null상태인데 10이라는 숫자가 들어감 //이후 channelUp() 메소드를 통해 숫자를 한단계 상승시킴 //그 숫자를 출력하기 때문에 자연스럽게 11이라는 숫자가 출력 //자식클래스의 caption에서 boolean을 했기 때문에 true, false만이 되는데 //최초 아무런 설정을 하지 않은 Hello, World는 생성이 안되고 //caption을 true시킨 다음 문장만이 실행이 된다. //ctv가 참조변수로써 displayCaption을 호출하고 그곳에 Hello, World가 매개변수로 들어가고 //if문이 true이기에 문장이 출력되는 구조 ctv.channel = 10; // 조상클래스로부터 상속받은 멤버 ctv.channelUp(); // 조상클래스로부터 상속받은 멤버 System.out.println(ctv.channel); ctv.displayCaption("Hello, World"); ctv.caption = true; // 캡션기능을 켠다. ctv.displayCaption("Hello, World"); // 캡션을 화면에 보여 준다. } } | cs |
'23.12.24 삭제예정 > 자바' 카테고리의 다른 글
자바의 역사 (0) | 2018.02.21 |
---|---|
★★★ 생성자 응용 (0) | 2017.08.11 |
★★★변수의 초기화★★★ (0) | 2017.08.07 |
★★this 생성자 개인적으로 연습해서 만든것 (0) | 2017.08.07 |
★★다른 생성자를 호출하는 방법★★ (0) | 2017.08.07 |