즐거운프로그래밍

[자바] 상속(inheritance)

수수께끼 고양이 2023. 11. 13. 18:01
728x90
반응형

상속(inheritance) : 부모 클래스, 자식 클래스

클래스 상속을 위해 extends를 사용한다.

public class Main {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.setName("Tom");
        Dog dog = new Dog();
        dog.setName("Jerry");
        System.out.println(dog.name);
        dog.sleep();
        HouseDog happy = new HouseDog("happy");
        HouseDog yorkshire = new HouseDog(1);
//        houseDog.sleep();
//        houseDog.sleep(3);
        System.out.println(happy.name);
        System.out.println(yorkshire.name);
    }
}
class Animal {
    String name;
    void setName(String name) {
        this.name=name;
    }
}
class Cat extends Animal {}
class Dog extends Animal { // animal (부모)클래스의 상속된 dog (자식)클래스
    void sleep() { // 클래스 기능의 확장(메서드 추가):정의된 속성을 확장
        System.out.println(this.name+" zzz");
    }
}
class HouseDog extends Dog {
    HouseDog(String name) {
        this.setName(name);
    }
    HouseDog(int type) {
        if(type == 1) {
            this.setName("yorkshire");
        } else if(type ==2) {
            this.setName("bulldog");
        }
    }
    void sleep() {
        System.out.println(this.name+" zzz in house");
    }
    void sleep(int hour) {
        System.out.println(this.name+" zzz in house for "+hour+" hours");
    }
}

 

 

 

 

 

728x90
반응형