C#은 실제로 다중 상속을 지원합니까? 사람들은 인터페이스의 형태로 다중 상속을 지원한다고 말합니까? 하지만 나는 그렇게 생각하지 않는다.C에서 다중 상속과 인터페이스의 차이점 #
답변
리터럴 의미에서 다중 상속을 지원하지 않는다. 은 다형성을 제공하는 다중 인터페이스를 구현할 수 있으므로 다중 상속의 이점을 얻을 수 있습니다. 그러나 기본 동작을 얻지는 못합니다.
기본 동작이 필요한 경우 기본 전략은 기본 클래스가 인터페이스를 구현하고 필요한 경우이 구현을 재정의하기위한 파생 클래스입니다.
나는 아직 다중 상속의 필요성에 부딪혀 왔지만, 나는 C#이 부족하다고 생각하지 않는다. 대표 이상
구현 (IOD)는 C#에서 개발자 빠른 시스템 인터페이스의 구현 및 다중 상속 수있는 아주 간단한 코딩 기술이다 (내가 아는 : 그것은 : 지원되지 않음) 그럼
전체적인 아이디어는 기본적으로 원하는 유형의 클래스 필드가 있고 멤버 필드에 숨겨진 호출을 기반으로 클래스의 공개 속성을 노출하는 것입니다.
그래서 클래스 A와 클래스 B와 같은 클래스가있는 경우 클래스 C의 부모 그 상황의 예는 우리가 처리 할 수 있어야하고 알 수있는 사용자 컨트롤을 가질 때의 경우 일 수 있습니다. 고객의
사용자 정의 컨트롤과 List는 C#의 경우 다중 상속을 지원하지 않기 때문에 상속을 통해 직접 할 수는 없으므로 다중 상속이 제대로 사용되지 않을 때 클래스 패턴 방지 패턴으로 이어짐)
언어 디자이너는 C#에서 다중 상속을 허용하지 않기로 결정했습니다. 그것은 discussed before되었습니다.
객체 지향 언어의 이론에서 C#/Java/등의 상속에 대해 이야기 할 때 종종 혼합되는 두 가지 개념이 있습니다. 하위 유형
는 하나의 클래스가로 캐스트 (또는으로 간주) 할 수있는 방법 몇 가지 다른 간단한 유형 (라고 슈퍼)에 기록 될 수 있다는 것을 의미한다. C# 용어에서는 부모 클래스 또는 인터페이스가 필요한 메서드에 개체를 전달할 수 있음을 의미합니다. C#의 객체에는 명확하게 여러 수퍼 유형이 있습니다 (부모 + 원하는만큼의 인터페이스)
하위 클래스은 유형이 다른 유형의 구현을 상속한다는 것을 의미합니다. C#에서는 부모 클래스가있을 때 발생하지만 인터페이스를 구현할 때는 발생하지 않습니다 (인터페이스에서 구현을 상속하지 않기 때문에). 따라서 C#에서는 단일 수퍼 클래스 (= 부모 클래스) 만 가질 수 있습니다.
- 1. 브릿지와 인터페이스의 차이점
- 2. 다중 상속과 관련된 인터페이스를 사용하는 실제 예
- 3. 프리젠 테이션 레이어와 사용자 인터페이스의 차이점
- 4. C에서 확장 메서드와 메서드의 차이점
- 5. C에서 다중 포크 예제
- 6. 필드 pragma가 Perl에서 다중 상속과 호환되지 않는 이유는 무엇입니까?
- 7. C# 인터페이스의 암시 적 및 명시 적 구현 간의 차이점
- 8. C에서 다중 스레드를 만드는 방법 #
- 9. C에서 다중 스레드 대기열 제거
- 10. C++ : 상속과 오버로드 연산자
- 11. NHibernate의 상속과 연관
- 12. 상속과 클래스 멤버 GIVEN
- 13. 다중 뷰 컨트롤과 AjaxToolkit 탭의 차이점
- 14. LINQ 상속과 함께 Generics 사용
- 15. 존 레식 상속과 캔버스 .getContext
- 16. 상속과 캐스팅에 관한 C++ 문제
- 17. Send.nc와 SendMsg.nc의 차이점
- 18. 인터페이스의 문제점
- 19. 인터페이스의 속성
- 20. 인터페이스의 변수
- 21. C에서 다중 스레드의 정적 상수 변수에 액세스
- 22. C에서 리터럴 및 기호 상수의 차이점 및 정의?
- 23. 배열과 배열 포인터를 C에서 함수로 전달할 때의 차이점
- 24. & (앰퍼샌드)와 && 또는 | 사이의 차이점 (파이프) 및 || Objective-C에서?
- 25. C 인터페이스의 핸들에 적합한 유형
- 26. C# - 인터페이스 - 인터페이스의 힘으로 도와주세요
- 27. 낙관적 인 대 다중 버전 동시성 제어 - 차이점?
- 28. 단일 테이블 상속과 관련된 HABTM 연결
- 29. 하스켈 typeclass 상속과 매개 변수 typeclass
- 30. 부모 모델의 자식을 장고 상속과 구별
나는 이것을 추가하려했으나 대답은 끝났다. 다중 상속은 C#에서 지원되지 않습니다. 인터페이스는 기본 동작을 정의하지 않으므로 그러나 여러 계약 (인터페이스)을 상속 할 수 있습니다. –
여러 개체 상속은 CLR에서도 지원되지 않습니다. 다중 상속이 좋을 장소를 보았습니다 ...하지만 다른 사람들이 쉽게 유지할 수있는 객체를 만들도록 강요합니다. –
내가 이것에 물리는 유일한 시간은 형식이 MarshalByRefObject를 확장하지 않는 경우입니다. – Will