본문 바로가기

수업 복습하기/Java

Day 12 - 다형성(Polymorphism) (1)

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