1. 다형성
다형성은 같은 자료형에 여러 객체를 대입해서 다양하게 활용하는 것을 뜻합니다.
이를 통해 다양한 실행 결과를 얻을 수 있으며 유지보수가 용이하게 됩니다.
2. 다형성 구현 방법
클래스를 상속하거나 인터페이스를 구현하여 오버라이딩을 하고 자식클래스를 부모로 업 캐스팅을 하면 됩니다.
부모 타입의 객체에서 자식 클래스 맴버를 참조하여 다형성을 구현합니다.
현대자동차 인터페이스에 구현하는 각 자동차들에 서로 다른 성능을 발휘하는 것을 다형성이라고 합니다.
interface Hyundai { // 인터페이스
void name(); // 추상 메소드
void engine(); // 추상 메소드
}
class Ssonata implements Hyundai { // 인터페이스 구현 클래스
public void name() { // 오버라이딩
System.out.println("이름 : 쏘나타");
}
public void engine(){
System.out.println("엔진 : 쏘나타엔진");
}
class Abanddae implements Hyundai { // 인터페이스 구현 클래스
public void name() { // 오버라이딩
System.out.println("이름 :아반뗴");
}
public void engine() { // 오버라이딩
System.out.println("e : 아반뗴 엔진");
}
}
public class PolymorphismEx01 {
public static void main(String[] args) { // main 메소드
Hyundai ow; // 인터페이스 객체 선언
System.out.println("플레이할 자동차 번호 선택(1.쏘나타, 2. 아반떼)");
Scanner sc = new Scanner(System.in); // 스캐너 객체
int n = sc.nextInt();
if(n==1){
ow = new Ssonata(); // 업캐스팅
}else if(n==2){
ow = new abanddae(); // 업캐스팅
}
// 선택한 조건에 따라서 부모 객체로 자식 메소드 사용(하나의 타입으로 다양한 결과를 얻어냄 / 다형성)
ow.name();
ow.engine();
}
}
이렇게 다형성으로 업캐스팅하여 사용할 수 있습니다.
즉 Hyndai 인터페이스를 선언하고 이를 위 클래스들로 업캐스팅을 해줍니다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
Java- 인터페이스 (0) | 2019.07.11 |
---|---|
Java- 추상클래스 (0) | 2019.07.10 |
Java - 제어자 (0) | 2019.07.10 |
Java- 상속 (0) | 2019.07.08 |
Java- 오버라이딩 (0) | 2019.07.07 |