클래스 상속
부모 클래스
class TV
{
int channel = 9;
int volumn = 10;
boolean power = false;
TV(){
System.out.println("TV()생성자 실행됨");
}
TV(int channel, int volumn){
this.channel = channel;
this.volumn = volumn;
System.out.println("TV(int, int) 생성자메소드 실행됨");
}
//채널
void channelUp(){
channel++;
if(channel<=1){
channel = 1;
}
}
void ChannelDown(){
channel--;
if(channel<=0){
channel = 13;
}
}
//볼륨
void volumnUp(){
volumn++;
if(volumn>=30){
volumn=30;
}
}
void volumnDown(){
volumn--;
if(volumn<0){
volumn=0;
}
}
//파워
void powerOnOff(){
if(power==true){
power = false;
}else{
power=true;
}
}
}
class TvWhite30 extends TV
{
String color = "white";
int size = 30;
int volumn = 20;
//생성자 메소드
TvWhite30(){
super(1, 1); //상위 클래스의 생성자를 호출하는 super()는 첫번째 줄에만 사용할 수 있다.
System.out.println("TvWhite30()생성자 실행됨");
}
//overriding : 상위 클래스에서 정의된 메소드를 하위 클래스에서 재정의
// 메소드명과 인자가 같아야 한다.
void volumnUp(){
volumn += 2;
if(volumn>=50){
volumn=50;
}
}
void volumnUpOld(){
super.volumnUp(); //상위 클래스에 있는 메소드 호출
System.out.println("볼륨 : "+super.volumn);
}
//this : 자신의 클래스
//super : 상위 클래스
public static void main(String ar[]){
TvWhite30 tw = new TvWhite30();
//채널
tw.channelUp();
System.out.println("채널번호 : "+tw.channel);
//볼륨 변경
tw.volumnUp();
System.out.println("볼륨 : "+tw.volumn);
tw.volumnUpOld();
}
}