Java

다형성

hs_developer 2022. 6. 25. 19:46

다형성은 큰 객체 안에 작은 객체를 넣어서 여러 형태로 변환해 사용하는 것이다.

 

다형성을 사용하면 객체화 시 다른 객체를 끌어다 생성한 변수에 넣어줄 수 있는데

 

철수 a= new 사람() 은 되지만

 

사람 a= new 철수() 는 안된다.

 

 

public class Human {

	public void call()
	{
		System.out.println("HUMAN Call");
	}
}
public class Cheolsu extends Human {

	public void call()
	{
		System.out.println("CHEOLSU Call");
	}
	
	public void status()
	{
		System.out.println("CHEOLSU Status");
	}
	
}
public class PolymorphismTest {

	public static void main(String[] args) {
		
		// Human 객체에 Cheolsu 객체를 넣음
		Human h= new Cheolsu();
		
		h.call(); // CHEOLSU Call
	}
}

 

 

큰 개념인 Human에 Cheolsu를 넣어 정의할 수 있는데

 

여기서 껍데기는 Human이지만 안의 내용은 Cheolsu이기 때문에 call 메서드 호출할 시 Cheolsu Call이 호출된다.

 

 

public interface Champion {

	public void call();

}
public class Kim implements Champion {

	@Override
	public void call() {
		
		System.out.println("Kim Call");
	}
}
import java.util.*;

public class PolymorphismTest {

	public static void main(String[] args) {
		
		Champion c= new Kim();
		c.call(); // Kim Call
		
		Map<String, String> m= new Hashmap<String, String>(); // 실사용 예제1
		Map<String, String> m2= new LinkedHashmap<String, String>(); // 실사용 예제2 
		
	}
}

 

Map 인터페이스 안에 

 

작은 개념인 HashMap과 LinkedHashMap이 들어있어

 

큰 개념인 Map에 넣어 사용할 수 있다.