728x90
728x90
= 다형성(Polymorphism)
다형성은 객체가 여러 형태를 가진다라는 의미로 해석이되며,
하나의 객체가 여러가지의 유형으로 사용되는 것을 의미합니다.
* 다형성은 상속을 전제조건으로 하며,
자바는 부모타입의 모든 자식 객체가 대입될 수 있습니다.
부모 클래스 변수 = new 자식클래스()
= 예시
Cat, Dog (자식클래스)로 생성해서, Animal타입에 저장 할 수 있다.
이 때는, 부모에 있는 메서드만 실행이 가능하며, overriding 메서드는 우선 실행된다.
class Animal {
public void cry() {
System.out.println("동물이 웁니다.");
}
}
class Cat extends Animal {
@Override
public void cry() {
System.out.println("고양이가 웁니다.");
}
}
class Dog extends Animal {
}
< MainClass >
public class C02Polymorphism {
public static void main(String[] args) {
Animal a1 = new Animal();
Cat c1 = new Cat();
Dog d1 = new Dog();
a1.cry();
c1.cry();
d1.cry();
System.out.println("========================");
Animal a2 = c1;
Animal a3 = d1;
a2.cry();
a3.cry();
// Cat c2 = a1;
// Dog d2 = a1;
}
}
< 출력값 >
동물이 웁니다.
고양이가 웁니다.
동물이 웁니다.
========================
고양이가 웁니다.
동물이 웁니다.
728x90
'수업 복습하기 > Java' 카테고리의 다른 글
Day 13 - 정적 멤버 (Static) (0) | 2021.09.06 |
---|---|
Day 12 - 다형성 (casting, instanceof) (2) (0) | 2021.09.02 |
Day 11 - 캡슐화(Encapsulation) (0) | 2021.08.31 |
Day 11 - 접근 제한자(Access Modifier) (0) | 2021.08.31 |
Day 11 - super (생성자, 메서드) (0) | 2021.08.30 |