본문 바로가기

BackEnd/Java

동적바인딩과 다형성(polymorphism)

* 동적바인딩이란?

상속 관계에서 업캐스팅 후 메서드를 실행할 때, 컴파일 단계에서의 실행 대상과

실행 단계에서의 실행 대상이 달라지는 것

 

즉, 참조 변수의 타입과 무관하게 실제 인스턴스의 메서드를 실행하는 것이다

 

* 다형성(polymorphism)이란?

하나의 참조변수로 여러 인스턴스를 참조할 수 있는 특성.

인스턴스를 업캐스팅하여 슈퍼클래스 타입으로 서브클래스의 멤버를 다루는 것

 

class Triangle extends Shape {
	@Override
	public void draw() {
		System.out.println("삼각형 그리기");
	}
}

Triangle ta = new Triangle();
// 슈퍼클래스의 메서드를 상속받아 오버라이딩을 할 경우 코드의 통일성이 향상됨

ta.draw();
cc.draw();
ra.draw();
// 코드의 통일성을 더욱 향상시키기 위해 업캐스팅 활용