C#'da neden Çoklu kalıtım mümkün değil?
C#'da neden Çoklu kalıtım mümkün değil?

Video: C#'da neden Çoklu kalıtım mümkün değil?

Video: C#'da neden Çoklu kalıtım mümkün değil?
Video: Nesne Tabanlı Programlama #16 - Inheritance(Kalıtım) Nedir? 1. Bölüm 2024, Kasım
Anonim

C# yapar Olumsuz destek çoklu kalıtım , çünkü eklemeyi düşündüler çoklu kalıtım çok az fayda sağlarken C#'a çok fazla karmaşıklık ekledi. C#'da sınıflar yalnızca izin verilmiş ile miras single olarak adlandırılan tek bir ebeveyn sınıfından miras.

Aynen öyle, neden çoklu mirasa izin verilmiyor?

Java destekler çoklu kalıtım sadece arayüzler aracılığıyla. Bir sınıf, herhangi bir sayıda arabirim uygulayabilir, ancak yalnızca bir sınıfı genişletebilir. Çoklu kalıtım desteklenmiyor çünkü ölümcül elmas sorununa yol açar. Arayüz, sınıfınızın uygulaması gereken şeylerin bir sözleşmesidir.

Ayrıca, C#'da birden çok arabirimi miras alabilir miyiz? Arayüzler bir sınıfın ne olduğuna dair anlaşmalar veya "sözleşmeler" gibidir. yapabilir . sınıflar Yapabilmek Sahip olmak çoklu arayüzler , ancak sınıflar olamaz birden fazla miras almak sınıflar. sınıflar miras daha fazla bir sınıf olarak bilinir çoklu - miras . C# yapar izin vermemek çoklu - miras.

Burada, çoklu kalıtım C#'daki Elmas sorunu nedir?

NS " elmas sorunu " iki sınıf B ve C olduğunda ortaya çıkan bir belirsizliktir. miras A ve D sınıfından miras hem B hem de C'den. A'da B ve C'nin geçersiz kıldığı ve D'nin geçersiz kılmadığı bir yöntem varsa, o zaman yöntemin hangi sınıfı D yapar miras : B'ninki mi, yoksa C'ninki mi?

Örnekle C#'da çoklu kalıtım nedir?

C# izin vermiyor çoklu kalıtım sınıflarla ancak interface kullanılarak uygulanabilir. Arkasındaki sebep şudur: Çoklu kalıtım az fayda ile çok fazla karmaşıklık ekleyin. Çatışan temel sınıf üyesi olma olasılığı çok yüksektir. Miras Arayüz ile aynı işi sağlar çoklu kalıtım.

Önerilen: