2023. 12. 20. 09:12ㆍ2023.11.21-2024.05.31
package com.sukgi.inheritance;
//상속 + 접근제어자 protected
import dec19.Test03;
//1 코드량 줄이기
//2 클래스간 관계를 만들어서 활용하기 = 다형성
class Animal extends Test03 {
protected String name;
private int age;
public void sleep() {
testNumber = 10;
System.out.println(testNumber + "animal이 잠을 잡니다");
}
}
class Cat extends Animal {
protected int catNumber;
public void change() {
testNumber = 10;
}
@Override
public void sleep() {
// super.sleep();
System.out.println("고양이가 잔다");
}
}
class Dog extends Animal {
@Override
public void sleep() {
// super.sleep();
System.out.println(name + "이(가) 집에서 잠을 잡니다.");
}
public void walk() {
System.out.println("산책갈까?");
}
}
public class Inheritance extends Test03 {
public static void main(String[] args) {
Cat cat = new Cat();
Dog dog = new Dog();
// Animal animal = new Animal();//추상화 ->인터페이스 나중에 배울거라 주석
cat.sleep();
cat.name = "3PO";
Inheritance inheritance = new Inheritance();
System.out.println(inheritance.testNumber);
// System.out.println(cat.testNumber);
cat.sleep();
dog.sleep();
Animal a = dog;
a.sleep();
Animal b = new Dog();
b.sleep();
//b는 Animal
//b.walk();//자식에게 있는것이 부모에게 전달 안된다!
((Dog)b).walk();//자식에게 있는것이 부모에게 전달 안된다!
dog.walk();
Object obj = b;
((Dog)((Animal)obj)).walk();
Dog newDog = (Dog)obj;
newDog.walk();
}
}
고양이가 잔다
0
고양이가 잔다
null이(가) 집에서 잠을 잡니다.
null이(가) 집에서 잠을 잡니다.
null이(가) 집에서 잠을 잡니다.
산책갈까?
산책갈까?
산책갈까?
산책갈까?
'2023.11.21-2024.05.31' 카테고리의 다른 글
231219 JAVA Override(오버라이드) (0) | 2023.12.20 |
---|---|
231219 JAVA Overload(오버로드) (0) | 2023.12.20 |
231218 JAVA Animal, Cat, Dog, Zoo (0) | 2023.12.19 |
231218 JAVA Inheritance(상속) (0) | 2023.12.19 |
231218 JAVA static02(인스턴스 멤버, 정적 멤버) (0) | 2023.12.19 |