'항목'이 여러 개 있다고 가정 해 보겠습니다. 나중에 'Item'을 확장하는 'SpecialItem'으로 일부를 변경하고 싶습니다.클래스의 인스턴스를 캐스트로 바꾸는 방법, 모든 참조가 작동하는 동안
Item의 이전 인스턴스에 대한 기존 참조를 모두 업데이트하지 않고도 SpecialItem 인스턴스로 Item 인스턴스를 바꿀 수 있습니까?)
'항목'이 여러 개 있다고 가정 해 보겠습니다. 나중에 'Item'을 확장하는 'SpecialItem'으로 일부를 변경하고 싶습니다.클래스의 인스턴스를 캐스트로 바꾸는 방법, 모든 참조가 작동하는 동안
Item의 이전 인스턴스에 대한 기존 참조를 모두 업데이트하지 않고도 SpecialItem 인스턴스로 Item 인스턴스를 바꿀 수 있습니까?)
거꾸로 캐스트하거나 상속 체인을 '위로'이동할 수 있습니다. 같은 뭔가 :
var item:Item = mySpecialItem as Item;
당신이 능력을 교환 고급 런타임이 필요한 경우, 예를 들어, 대신 상속의 조성물을 사용하여 인터페이스 인스턴스 대신 클래스 인스턴스와 같은 항목을 참조하는 생각.
그러나 @IronBCC에 따르면 속성을 바꾸기 만하면 속성을 공개로 설정할 수 있습니다.
! 매우 명확한. – Flion
아니, 당신은이 작업을 수행 할 수
... 그래서 난 이 SpecialItem 으로이 =을 수행하지만, 당연히, 당신은 '이'로 그렇게 할 수 없습니다 싶습니다. 하지만 당신은 건설 사용할 수 있습니다 : 새 값을 설정하는) 당신의 항목 및 link.link = 새로운 SpecialItem을 (얻기 위해class Link {
private var _link:*;
public get link(){}
public set link...
}
및 사용자 link.link을.
아, 아주 간단하지만 매우 도움이되는 제안입니다! tnx! 덕분에 – Flion
클래스의 인스턴스는 항상 필요한만큼 특수화되어야합니다. –