일반적으로 상속과 파라 메트릭 다형성 ("generics")의 개념을 통일시킬 수 있는지 궁금합니다. 특히 분산에 관해서뿐만 아니라 how ("구문") 및 where (use-site/declaration-site) 정의되어야 하는가?상속과 파라 메트릭 다형성의 개념을 통합 할 수 있습니까?
- 하위 입력 전자 : 는 이러한 관점을 고려하십시오. 지.
S <: T
은T
을 허용하는 입력 인수에도S
을 허용하기 때문에 동시 변형 동작으로 인식 할 수 있습니다. - "상속 모델의 분산"을 불변으로 변경하는 것은 하위 유형 지정을 허용하지 않음으로써 정의 측면에서만 가능합니다 (예 :
final
수정자를 클래스 정의에 추가). 본인이 지금까지 반대 변형을 수행 할 수 없습니다 대부분의 경우 - 파라 메트릭 다형성은 기본적으로 불변이지만, 공동/콘트라 변형을 할 수
- 을 고려
둘 사이에 무시할 수없는 개념 불일치가있는 것 같습니다, 고통의 언어는 "안전하지 않은"공분산 (예 : 지. 자바/C#을) 상속/파라 메트릭 다형성 선언하는 방법에
- 의 차이에
String[] <: Object[]
과는 그것을 볼 수있는 일부 언어에서
을 상속에 비해 사용되는
class Foo extends Ordered[Foo]
같은 잘하지만 함께 두 작품,
은 순서/비교 동작을 구현합니다.
- 그러므로 다만, 상속 및 파라 메트릭 다형성의 개념이 통합과 같은 기본 분산 동작을 얻을 수 (예를 들어, 공분산 기본적으로 또는 그 대신 불변의 주석 대부분의 유형을 표시 할 필요성을 야기 할 수 있다고는 생각할 수있다 추악함을 다른 지점으로 이동)? 데이터 구조가 기본적으로 변경되지 않는 것처럼 실용적일까요?
- 이것이 정상적인 것으로 입증 된 공식 시스템이 있습니까?
- 구체적인 프로그래밍 언어에 관계없이 가장 일반적으로 필요한 구문 옵션/변경은 무엇입니까?
- 이/비슷한 비슷한 작동 예제 나 언어가 있습니까?
도서 정보를 제공해 주셔서 감사합니다. 나는 기본적으로 상속과 pp가 서로 다른 기본값을 가지고 동일한 지주 개념을 가지고 있고, 그들의 사용 사례에 대해 적응되고 최적화되어 있는지 궁금합니다. – soc
"어떤 경우에는 멋지게"독점적 인 것이 아닙니다. 나는이 두 개념이 서로 어떻게 상호 작용할 수 있는지에 대한 예제를 멋지고 간단한 예제로 발견했습니다. 나는 그 말씨를 조금 바꿨다. 저는 스칼라를 꽤 좋아하지만, 실제 컴파일러에 몇 가지 건전성 문제를 해결하고 싶습니다. 그러나이를 수행하는 데 필요한 천재성이 부족합니다. :-) – soc