2009-07-15 3 views
1

다중 상속이 필요한 시나리오가 있습니까? 예제를 제공해주십시오.다중 상속이 필요한 시나리오가 있습니까?

+5

예. 예제도 필요합니까? 너는 약간을 요구해야한다. – Welbog

+1

아니요 대부분의 튜링 언어는 지원하지 않습니다. –

+0

나는 이것 하나가 http://stackoverflow.com/questions/573913/a-use-for-multiple-inheritance에 가깝다고 생각한다. – Arnkrishn

답변

0

개발자가 게으르며 다중 상속을 필요로하지 않는 더 나은 클래스 디자인을 만들고 싶지 않을 때 나는 주로 C#으로 코드를 작성하고 시나리오를 찾지 못했지만 자신의 디자인 만 저주하게 만들었습니다 단일 상속을 허용합니다. 즉, 다중 인터페이스 을 구현할 수 있다는 것은 매우 편리하다는 의미입니다.입니다.

+0

하지만 여러 인터페이스를 사용했을 가능성이 큽니다 (또는 상속과 인터페이스 모두 사용). 하지만 그것은 C++에서 다중 상속이 될 것입니다. 왜냐하면 C++은 인터페이스를 독립적 인 개념으로 갖고 있지 않기 때문입니다. (C++ 개발자는 인터페이스를 구현 된 메소드가없는 클래스로 생각합니다.) –

4

다른 OOP 언어가 가지고있는 인터페이스와 같은 것을 시뮬레이션하려면 다중 상속을 사용해야합니다. 당신은 튜링 기계보다 더 아무것도 필요 아니 시나리오가 없습니다 자바 나 C#

+0

+1, 정확하게 말하고자하는 것 –

+0

인터페이스가 더 일반적인 다중 상속의 제한된 특수한 경우 (예 : 순수 가상 추상 기본 클래스)를 제외하고. –

+0

요컨대 인터페이스는 구현의 * 계약 *입니다. 클래스 - 상속은 실제 구현입니다. 하나의 구현 상속 (Java, C# 등)으로 언어를 제한하지 않는 한 계약 * 및 * 구현 (순수 가상 + 구현 함수)을 둘 다 가질 수 있습니다. – WhozCraig

1

순수 추상 클래스를 사용하면, 인터페이스를 가질 수 있습니다.

0

처럼

2

상속을 "필요로하며"단일 클래스에서 두 번 이상 사용하거나 단일 클래스에서 결합하려는 것은 "다중 상속이 필요합니다". 상속을 사용

일반적인 C++ 숙어은 다음과 같습니다 : 추상 클래스를 사용하여

을 할 특성. 정책 기반 반복자 유형을 원하면 다중 상속이 필요합니다 (한 번은 정책의 경우, 한 번은 특성의 경우).

필자는 분명히 모든 경우에 동일한 출력을 가진 프로그램을 작성할 수 있고 다중 상속을 사용하지 않기 때문에 "필 요"을 넣을 수 있습니다 ("튜링 완료는 모두 우리가 신경 쓰고 있습니다"인수). 그러나 Turing의 완전성은 이 아니며입니다. 일반적으로 Turing의 입/출력 프로그램 개념 외에도 소프트웨어 작성에 대한 목표가 있습니다. 우리는 그 근원이 어떻게 생겼는지 관심을 기울입니다. 그러므로 "필요하다".

0

COM 개체를 작성할 때.

관련 문제