다형성은 큰 객체 안에 작은 객체를 넣어서 여러 형태로 변환해 사용하는 것이다.
다형성을 사용하면 객체화 시 다른 객체를 끌어다 생성한 변수에 넣어줄 수 있는데
철수 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에 넣어 사용할 수 있다.
'Java' 카테고리의 다른 글
PrepareStatement (0) | 2022.07.04 |
---|---|
예외처리 (0) | 2022.06.25 |
제네릭스 (0) | 2022.06.25 |
인터페이스, 추상클래스 (0) | 2022.06.25 |
this, super (0) | 2022.06.25 |