:::: 개발 ::::/::: JAVA :::

다형성

nayha 2022. 11. 1. 10:00

사용 방법은 동일하지만 실행 결과가 다양하게 나오는 성질.

 

객체 사용 방법이 동일하다는 것은 동일한 메소드를 가지고 있다는 뜻이다.

 

타이어를 상속하는 금호 타이어와 한국 타이어가 있다.

두 타이어는 (부모) 메소드를 동일하게 가지고 있다고 할 수있다.

부모 메소드를 오버라이딩하고 있다면 타이어 메소드 호출 시 오버라이딩된 메소드가 호출된다.

 

오버라이딩된 내용은 두 타이어가 다르기 때문에 실행 결과가 다르게 나온다. 

이런것을 다형성이라 한다.

public class Tire{
	//method
    public void roll(){
    	System.out.println("회전 합니다");
    }
}
public class HanTire extends Tire{
	//Override method
    
    @Override 
    public void roll(){
    	System.out.println("한국 타이어 회전 합니다");
    }
}
public class kumhoTire extends Tire{
	//Override method
    
    @Override 
    public void roll(){
    	System.out.println("금호 타이어 회전 합니다");
    }
}
public class Car{
	//필드 선언
    public Tire tire;
    
    //method
    public void run(){
    	//tire 필드에 대입된 객체의 roll() 호출
        tire.roll();
	}

}
public class CarExample{
	public static void main(String[] args){
    	//car Object Create
        Car myCar = new Car();
        
        //tire 객체 장착
        mycar.tire = new Tire();
        mycar.run();
        
        //HanTire 객체 장착
        mycar.tire = new HanTire();
        mycar.run();
        
        //KumhoTire 객체 장착
        mycar.tire = new KumhoTire();
        mycar.run();        
    }
}

 

CarExample 실행 결과 

회전 합니다.

한국 타이어 회전 합니다

금호 타이어 회전 합니다

 

 

 

반응형