2011-08-29 3 views
0

사용자가 도형에서 파생 된 타원이나 선을 그릴 수있는 그리기 프로그램이 있습니다. 나는 하나 개의 고무 밴드를 만들고, 내가상속 문제

rubberBand = new Ellipse(); 
//or 
rubberBand = new Line(); 

을 말하는 사용자가 그리는에 따라하지만 난 줄을 고무 밴드를 설정하면, 내가 등등 X1의 2 배에 액세스 할 수 있어요, 그것은 모양이 정의를 포함하지 않는 말한다 X1. 나는 타원을 만들고 그 줄을 캐스팅했지만 여전히 같은 문제를 시도했다. 어떻게 해결할 수 있습니까?

+0

당신이 당신의 라인 클래스의 선언을 게시 할 수 있을까요? Ellipse와 Line 모두 기본 클래스가 있습니까? 그들은해야. –

+0

@Don Quixote 예 그들은 모두 Shape에서 파생되었습니다. – mihajlv

답변

0

이것은 기본적인 다형성 질문과 같습니다. 실제로 무엇을하려고하는지 생각해보십시오. 예를 들어, 선은 2 포인트 (X1/Y1 및 X2/Y2)입니다. 타원 (직사각형 원)에는 폭, 어쩌면 높이, 가능하면 X 및 Y 좌표 (또는 위치 속성)가있는 속성이 없습니다.

사용자가 마우스로 드래그 할 때 모양의 경계 및/또는 위치를 조정하려고하는 것 같습니다. 이 경우 모양에 대해 정의해야하는 작업은 모양의 종류에 따라 달라집니다. 라인의 경우, X2와 Y2 (또는 무엇이든)를 조정하는 메소드를 작성해야합니다. 타원의 경우 너비, 높이, 왼쪽 및 위쪽 속성이있는 도형을 조정하는 다른 방법이 필요할 것입니다. 그런 다음 어떤 유형의 모양을 사용하는지에 따라 어느 것을 호출할지 결정해야합니다.

+0

나는 당신이 말하는 것을보고, 타원과 선 둘 다에 대한 속성을 모두 포함하는 모양 클래스를 가져야하고 그 클래스에서 파생되고 DefiningGeometry를 재정의해야합니다. – mihajlv