2009-11-03 6 views
0

다음은 예제입니다.하나의 Flex 객체를 파생 된 유형으로 캐스팅하려면 어떻게해야합니까?

var cartesian:CartesianChart = new CartesianChart(); 
cartesian.width = 100; 
var column:ColumnChart = new ColumnChart(); 
column = cartesian as ColumnChart; 

왜이 기능이 작동하지 않습니까? "열"이 null로 끝납니다. ColumnChart는 CartesianChart의 파생 클래스이므로 너비가 100 인 ColumnChart로 끝날 것이라고 생각했습니다.

+1

CartesianChart를 ColumnChart로 업 캐스팅하려는 것 같습니다. 불가능합니다. 항상 너비가 100 인 ColumnChart를 만들려고합니까? 무엇을 성취하려고합니까? –

+0

궁극적 인 목표는 약간 뒤죽박죽으로 작성하지만 내 코드에서 반복을 줄이기 위해 "상향 캐스트"하고 싶었습니다. (원시 차트에서 시작하여 값을 설정 한 다음 ColumnChart 또는 PieChart 또는 사용자가 선택하는 속성 만 다시 작성하고 채 웁니다.)이 작업을 수행하는 다른 방법을 찾아야 할 것입니다. – SkippyFlipjack

답변

0

ColumnChart extends CartesianChart? 부모 클래스의 객체를 자식 클래스의 객체로 캐스팅 할 수 있다고 생각하지 않습니다. 가장 좋은 방법은 CartesianChart 객체를 param으로 가져와 필요한 모든 소품을 가져와 설정하는 copyFromCartesianChart 같은 ColumnChart 클래스 함수를 작성하는 것입니다.

+0

오른쪽, 열은 데카르트를 확장합니다. 외관상으로는 자식을 부모로만 형변환 할 수 있으며 상속되지 않은 속성은 삭제됩니다. 이 작업을 수행하는 방법으로 파생 클래스를 확장하는 것이 좋습니다. – SkippyFlipjack

관련 문제