hahahia

[Java] 상속을 이용한 프레임 창 띄우기 예제 본문

Language/Java

[Java] 상속을 이용한 프레임 창 띄우기 예제

hahahia 2012. 10. 13. 19:24

자바에서 가장 핵심적이고 중요하다고 하는 상속은

C++에서는 콜론(:)을 상속의 키워드로 사용하며, 자바에서는 extends라는 키워드를 사용합니다.

간단히 예제를 보면 이해하실 수 있어요 ㅎㅎ


/**
 * Created with IntelliJ IDEA.
 * User: hahahia
 * Date: 12. 10. 13
 * Time: 오후 7:18
 */

import java.awt.*;
class HelloFrame extends Frame{ // 프레임을 상속받은 HelloFrame 클래스
    // 단순히 상속만 받음
}
public class FrameMain {
    public static void main(String[] args){
        HelloFrame h = new HelloFrame();  // HelloFrame 객체 생성
        h.setSize(200,200);
        h.setVisible(true);   // 화면에 나타냄
    }
}

상속의 원리가 상위 클래스의 모든 것을 다 받는다면 생성자도 상속받을까? 여기서 답은 No. 생성자는 상속되지 않습니다. 단지 자식에 의해서 자동으로 호출될 뿐... 예제를 살펴보면 이해가 빠르겠네요.




// GrandOfFather.java

public class GrandOfFather {
    public GrandOfFather(){
        System.out.println("상속 1세대 ");
    }
    public void getGrandOfFather(){
        System.out.println("getGrandOfFather 호출");
        for(int i=0; i<10; i++){
            System.out.print(i + " ");
        }
        System.out.println();
    }
}


// Father.java

public class Father extends GrandOfFather{
    public Father(){
        System.out.println("상속 2세대 ");
    }
    public void getFather(){
        System.out.println("Father 호출");
        for(int i=10; i<20; i++){
            System.out.print(i + " ");
        }
        System.out.println();
    }
}


// GrandFather.java

public class GrandFather{
        public static void main(String[] args){
            Father f = new Father();
            f.getGrandOfFather();
            f.getFather();
        }
}

/*
출력결과
상속 1세대
상속 2세대
getGrandOfFather 호출
0 1 2 3 4 5 6 7 8 9
Father 호출
10 11 12 13 14 15 16 17 18 19
* */


Comments