2014-10-08 1 views
1

반사 상속을 허용하는 프로그래밍 언어가 있습니까? 아니면 이와 같은 상속 사이클이 있습니까?상속주기를 허용하는 언어가 있습니까?

그렇지 않은 경우 어떤 언어로 허용하는 것이 불가능합니까?

임의의 구현 공유 및 이기종 배열에 참여하는 것 외에 다른 용도로 사용할 수 있습니까?

예를 들어주기 참여자의 다른 기본 클래스 또는 인터페이스에 추가 된 모든 필드 또는 메소드가 자동으로 전체주기에 사용 가능하게되는 것을 상상할 수 있습니다. 또 다른 생각은 등가 클래스의 표현입니다.

class Thing extends Item, implements A 
{ 

} 

class Item extends Concept 
{ 

} 

class Concept extends Thing 
{ 

} 

Item item = new Thing(); 
Thing thing = new Item(); 
A a1 = new Thing(); 
A a2 = new Item(); 
A a3 = new Concept(); 
+3

구문 구조를 임의의 의미를 부여함으로써 "허용"한다는 것은 쉬운 일이 아닙니다. 사이클을 추가 할 때 상속의 일반적인 의미가 당신의 얼굴에 날아간다. 그냥 맞지 않는다. 의미있는 방법으로 그것을 확장하는 것이 가능할 수도 있지만 결과가 어떻게 보이는지는 분명하지 않습니다. 요컨대, 당신이 그런 것을 원한다고 ** 설명 할 수 있습니까 ** **? 'Item','Concept','Thing'에 몇몇 필드와 메소드가 추가 될 때 - 누구로부터 누가 무엇을 상속받을 것인가? – delnan

+0

* 포인트 * 란 무엇입니까? –

+0

주기 참여자의 다른 기본 클래스 또는 인터페이스에 필드 또는 메소드를 추가하면주기 전체에서 자동으로 사용 가능하게됩니다. –

답변

1

상속의 목적은 참여하는 클래스에 일부 (계층 적) 구조를 부과하는 것입니다.

허용주기는 모든 항목이 서로 관련되어 있으므로 효과적으로 구조를 파괴하는 반대 방향으로가는 것처럼 보입니다.

상호 의존성이 요구되는 것은 가능하지만 다른 구문 구조를 명시 적으로 표현해야하며, 다른 구문을 왜곡하고 잘못 사용해서는 안됩니다.

관련 문제