그것이 나쁜 관행 일 수도 있지만, 그것이 목적을 달성 할 시간이 있다고 말할 수 있습니다.
그것이 나쁜 관행 일 수도 있지만, 그것이 목적을 달성 할 시간이 있다고 말할 수 있습니다.
답변:
/programming/995255/why-is-multiple-inheritance-not-allowed-in-java-or-c 는이 질문을 잘 다루고 있습니다.
내 생각은 이것이다. 디자이너들은 아마도 좋은 디자인 원칙을 홍보하는 언어를 만들고 싶었을 것이다. 다중 상속이 완벽 할 때가 있습니다. 그러나 규칙보다는 예외이며 매우 쉽게 악용 될 수 있습니다. 그래서 디자이너들은 불가능하게하기로 결정했습니다.
좋은 경우에는 인터페이스를 사용해야합니다. 비록 서툴지 만 그 일들. 하지만 그렇게 많이 필요하지는 않습니다.
Walter Bright는 MI를 포함하지 않는 D의 제작자이며 전체 C ++ 컴파일러를 직접 작성하는 유일한 사람입니다. 그에 따르면 D에 MI가 부족한 이유는 동시에 효율적이고 간단하며 유용한 MI 시스템을 만들기가 너무 어렵 기 때문입니다. Java와 C #이 비슷한 추론을 사용한다고 생각합니다. Perl 및 Python과 같은 언어는 효율성을 기본 목표로 삼지 않으므로 간단하고 유용하지만 효율적으로 구현하기 어려운 시스템을 갖추고 있습니다. C ++은 목표로 단순성이없는 것처럼 보이므로 거의 아무도 이해하지 못하는 매우 복잡한 시스템을 만들었습니다.
월터가 목표에 맞다고 생각합니다. 이 세 가지 기준을 모두 만족시키는 MI 시스템이있는 언어가있는 경우 의견을 남겨주십시오.
다중 상속을 많이 사용하면 매우 복잡한 상황이 발생합니다. 이점이 거의없는 복잡한 작업은 Java와 C # 모두에서 제외 된 이유입니다.