Niyə çoxlu miras C#-da mümkün deyil?
Niyə çoxlu miras C#-da mümkün deyil?

Video: Niyə çoxlu miras C#-da mümkün deyil?

Video: Niyə çoxlu miras C#-da mümkün deyil?
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Bilər
Anonim

C# edir yox dəstək çoxlu miras , çünki onlar əlavə etməyi əsaslandırdılar çoxlu miras çox az fayda təmin edərkən C#-a çox mürəkkəblik əlavə etdi. C#-da siniflər yalnızdır icazə verilir üçün miras almaq tək adlanan tək valideyn sinifindən miras.

Elə isə, niyə çoxlu vərəsəliyə icazə verilmir?

Java dəstəkləyir çoxlu miras yalnız interfeyslər vasitəsilə. Bir sinif istənilən sayda interfeys tətbiq edə bilər, lakin yalnız bir sinfi genişləndirə bilər. Çoxsaylı varislik dəstəklənmir çünki ölümcül almaz probleminə gətirib çıxarır. İnterfeys sinifinizin həyata keçirməli olduğu şeylərin müqaviləsidir.

Biri də soruşa bilər ki, biz C#-da birdən çox interfeysi miras ala bilərikmi? İnterfeyslər bir sinif haqqında müqavilələr və ya "müqavilələr" kimidir edə bilərsiniz . Dərslər bacarmaq var çoxlu interfeys , lakin siniflər ola bilməz çoxlu miras alır siniflər. Dərslər varislik -dən çox bir sinif kimi tanınır çoxsaylı - miras . C# edir icazə verməmək çoxsaylı - miras.

Burada çoxlu miras C#-da Diamond problemi nədir?

" almaz problemi " iki sinif B və C olduqda yaranan qeyri-müəyyənlikdir miras almaq A və D siniflərindən miras alır həm B, həm də C-dən. Əgər A-da B və C-nin ləğv etdiyi bir üsul varsa və D onu ləğv etmirsə, D metodunun hansı sinfinə aiddir. miras almaq : B-ninki, yoxsa C-ninki?

Nümunə ilə C#-da çoxlu miras nədir?

C# imkan vermir çoxlu miras siniflərlə, lakin interfeysdən istifadə etməklə həyata keçirilə bilər. Arxasındakı səbəb: Çoxlu miras az fayda ilə çox mürəkkəblik əlavə edin. Əsas sinif üzvlərinin ziddiyyətli olma ehtimalı böyükdür. Miras İnterfeys ilə eyni işi təmin edir çoxlu miras.

Tövsiyə: