Java 상속

이은엽·2023년 5월 10일
0

상속

- 클래스 간에 부모-자식 관계를 형성하여 코드의 재사용성과 계층 구조를 구축
- 자식 클래스는 부모 클래스의 속성과 메소드를 상속받아 사용
- 자식 클래스만의 속성과 메소드도 따로 정의 가능
- 즉 부모클래스를 확장하여 새 클래스를 만든다는 의미이다.
- 코드의 중복을 피하고, 계층적인 구조를 표현하며 유지 보수성을 향상시킨다.

예제 코드

// 부모 클래스 (슈퍼 클래스)
class Animal {
    protected String name; // 동물의 이름

    public Animal(String name) {
        this.name = name;
    }

    public void eat() {
        System.out.println(name + "이(가) 먹이를 먹습니다.");
    }
}

// 자식 클래스 (서브 클래스)
class Cat extends Animal {
    private String color; // 고양이의 색상

    public Cat(String name, String color) {
        super(name); // 부모 클래스의 생성자 호출
        this.color = color;
    }

    public void meow() {
        System.out.println(color + " 고양이 " + name + "이(가) 야옹 소리를 내면서 움직입니다.");
    }
}

// 자식 클래스 (서브 클래스)
class Dog extends Animal {
    private String breed; // 개의 품종

    public Dog(String name, String breed) {
        super(name); // 부모 클래스의 생성자 호출
        this.breed = breed;
    }

    public void bark() {
        System.out.println(breed + " 종의 개 " + name + "이(가) 짖으면서 움직입니다.");
    }
}

// 메인 클래스
public class Main {
    public static void main(String[] args) {
        Cat cat = new Cat("나비", "흰색");
        cat.eat(); // 부모 클래스의 메서드 호출
        cat.meow(); // 자식 클래스의 메서드 호출

        Dog dog = new Dog("맥스", "래브라도");
        dog.eat(); // 부모 클래스의 메서드 호출
        dog.bark(); // 자식 클래스의 메서드 호출
    }
}
- Animal 클래스가 부모 클래스
- Cat, Dog 클래스는 Animal 클래스를 상속받은 자식 클래스
- 자식 클래스는 부모 클래스의 속성 name과 메소드 eat()을 상속받아 사용 가능하다.
- 자식 클래스는 자신들만의 속성과 메소드인 meow()와 bark()가 존재

0개의 댓글