Language

자바 동적 바인딩에 관하여~

아라한사 2014. 4. 17. 10:17

오늘 학원 9일차 동적 바인딩 - 다형성에 대해서 배웠다~




자 일단 렝탱글이 있다~
public class Rectangle extends Shape{
	public void draw(){
		System.out.println("Rectangle draw() ");
	}
}

그리고 쉐이프가 있다.
public class Shape {
	public void draw(){
		System.out.println("Shape draw()");
	}
}

그리고 이것들을 이용하는 테스트가 있다
public class Test {
	public static void main(String[] args) {
		Shape s = new Shape();
		s.draw();
		
		Rectangle r= new Rectangle();
		r.draw();
		
		Shape s2 = new Rectangle();
		s2.draw(); //다형성
	}
}


자 여기서 Test의 결과는?
s2.draw()는 Shape Draw()가 아니라 Rectangle draw()를 호출한다.
왼쪽을 Shape 로 처리를 해도 결국 출력은 Rectangle Draw를 호출하게 된다.