티스토리 뷰

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

'Backend' 카테고리의 다른 글

java - abstract class  (0) 2023.02.17
java - constructor  (0) 2023.02.15
java - 메서드  (0) 2023.02.15
java - final  (0) 2023.02.14
java - Enum  (0) 2023.02.13
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함