자바[JAVA] - 동적바인딩과 다형성(Polymorphism)

turtleJ·2022년 5월 11일
0

다형성이 궁금하신 분들은 이전 포스팅을 보고 오시기 바랍니다.

동적바인딩

상속 관계에서 업캐스팅 후 메서드를 실행할 때, 컴파일 단계에서의 실행 대상과 실행 단계에서의 실행 대상이 달라지는 것.

즉, 참조 변수의 타입과 무관하게 실제 인스턴스의 메소드를 실행하는 것을 말한다.


class A {
	void exe() {
		System.out.println("A");
	}
};

class B extends A {
	void exe() {
		System.out.println("B");
	}
};

class C extends A {
	void exe() {
		System.out.println("C");
	}
};

public class Main {

	public static void main(String[] args) {
		
		// 동적 바인딩
		C var1 = new C();
		var1.exe();
		
		A var2 = null;
		var2 = (A)var1;
		var2.exe();
		
	}

}

결과

위 예제를 통해 형변환이 참조변수의 타입을 변환하는 것이며 인스턴스를 변환하는 것이 아니라는 것을 알 수 있다.

이것이 동적바인딩이며 다형성의 주요한 특징이다.

단지, 참조변수를 형변환 함으로써 인스턴스에서 사용할 수 있는 멤버의 개수를 조절할 수 있다는 장점이 있다.

profile
꾸준함을 무기로 성장하는 개발자가 되겠습니다.

0개의 댓글