즐거운프로그래밍

[자바] 클래스 상속 extends

수수께끼 고양이 2023. 10. 17. 17:10
728x90
반응형

클래스 상속

두 클래스가 상속관계에 있을 때 상속되는 클래스를 부모 클래스 혹은 상위 클래스라 부르고 상속 받는 클래스를 자녀 클래스 혹은 하위 클래스라 부른다.

하위 클래스는 상위 클래스의 public, protected로 선언된 멤버(변수, 메서드)들을 상속받아 사용하거나 재정의 할 수 있다.

상속을 할 때는 extends 지시자를 사용한다.

 

 

1. 메인 클래스(Dongmul 클래스, Sae 클래스, Saram 클래스)

public class Main {
   public static void main(String args[]) {
       System.out.println(new Dongmul());
       Dongmul d = new Dongmul();
        d.move();

        Sae s = new Sae();
        s.move();

        Saram sa = new Saram();
        System.out.println(sa);
        sa.move();
   }
}

 

2. Dongmul 클래스

public class Dongmul {
    public void move() {
        System.out.println("동물이 이동합니다.");
    }
}

 

3. Sae 클래스

public class Sae extends Dongmul { // extends 상속하기(확장) 위한 명령어, Dongmul에 상속됨, 반드시 포함하는 관계
    public void move() {
        super.move();
        System.out.println("새가 난다."); // 수정, 덮어쓰기 방식으로 수정됨
    }
}

 

4. Saram 클래스

public class Saram extends Dongmul { // extends 강하게 연결됨
    // Dongmul d; // 객체의 관계가 해제일 때 이렇게 표현함, 사람이 동물을 도구(종속관계)로 씀, extends를 쓰는 것이 더 좋음
    Dogu d;
    Saram() {
        // d=new Dongmul(); // 동물속성을 가질 수도 있고 안가질 수도 있음(선택적 포함)
        d= new Dogu();
    }
    public void move() {
        super.move();
        System.out.println("사람이 걸어 간다.");
        d.use();
    }
}

Saram 클래스는 Dongmul 클래스에 extends한다.

 

 

5. Dogu 클래스

public class Dogu {
    public void use() {
        System.out.println("도구를 사용합니다.");
    }
}

 

 

 

 

728x90
반응형