(Java) 단일 상속

Jayden·2023년 2월 27일

Java

목록 보기
16/35

Java는 단일상속만을 허용한다.

class TvDVD extends Tv, DVD { 		// 에러...조상은 하나만 허용된다.
	  		
            // ...
}


*** 따라서 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 나타내야 한다 ***

class Tv{
	boolean power;
    int channel;
    
    void power() { power =! power; }
    void channelUp() { ++ channel; }
    void channelDown() { -- channel; }
}

class DVD {
	boolean power;
    
    void power() { power =! power; }
    void play() { //... }
    void stop() { //... }
    void rew() { //... }
    void ff() { //... }
    
    
class TvDVD extends Tv{   // TvDVD 클래스는 Tv클래스를 상속, 
						 // DVD 클래스의 메서드는 포함하는 메서드를 생성한다.
	DVD dvd = new DVD();
    
    void play(){
    	dvd.play();
 	}
    
    void stop(){
    	dvd.stop();
 	}
    
    void rew(){
    	dvd.rew();
 	}
    
    void ff(){
    	dvd.ff();
 	}
}    

이렇게 속성이 조금 더 비슷한 클래스를 상속, 
나머지 클래스의 메서드를 호출해서 사용하면
다중 상속의 효과를 낼 수 있다!!

Object클래스는 모든 클래스의 조상이다.

  • 부모가 없는 클래스는 자동적으로 Object클래스를 상속받게 된다.
    (컴파일러가 자동으로 추가해준다)
    --> Object클래스에 정의된 11개의 메서드를 상속받는다.
    ( toString(), equals(Object obj), hashCode(),......)

0개의 댓글