Backend

java - inheritance

sjh9391985 2023. 2. 15. 20:31
728x90

IS-A 관계

-  자식 클래스의 객체는 부모 클래스의 자료형인 것처럼 사용할 수 있음

- Animal dog = new Dog(); // Dog is a Animal

 

상속 메서드 우선순위

class Animal {
    String name;

    void setName(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    void sleep() {
        System.out.println(this.name + " zzz");
    }
}

class HouseDog extends Dog {
    void sleep() {
        System.out.println(this.name + " zzz in house");
    }
}

public class Sample {
    public static void main(String[] args) {
        HouseDog houseDog = new HouseDog();
        houseDog.setName("happy");
        houseDog.sleep();  // happy zzz in house 출력
    }
}

// Dog 클래스와 동일한 형태(입출력이 동일)의 sleep 메서드를 구현하면 HouseDog 클래스의 sleep 메서드가 Dog 클래스의 sleep 메서드보다 더 높은 우선순위를 갖게 되어 HouseDog 클래스의 sleep 메서드가 호출
728x90