Niyə çoxlu varislik C++-da dəstəklənir, Java-da yox?
Niyə çoxlu varislik C++-da dəstəklənir, Java-da yox?

Video: Niyə çoxlu varislik C++-da dəstəklənir, Java-da yox?

Video: Niyə çoxlu varislik C++-da dəstəklənir, Java-da yox?
Video: Java dərsləri - Çoxlu extend problemi (Diamond Problem) 2024, Bilər
Anonim

C++ , Ümumi lisp və bir neçə başqa dil çoxlu varisliyi dəstəkləyir isə java etmir dəstək o. Java imkan vermir çoxlu miras onun yaratdığı qeyri-müəyyənliyin qarşısını almaq üçün. Belə problemə misallardan biri də baş verən almaz problemidir çoxlu miras.

Müvafiq olaraq, Java-da çoxlu varislik niyə dəstəklənmir?

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. Çoxlu miras edir yox ölümcül almaz probleminə səbəb olduğu üçün dəstəklənir. Sən interfeysdən heç bir funksionallıq əldə etməyin.

Həmçinin, çoxlu mirasda almaz problemi nədir? “ almaz problemi ” icazə vermənin nəticəsi kimi yarana bilən qeyri-müəyyənlikdir çoxlu miras . Ciddi haldır problem imkan verən dillər üçün (C++ kimi). çoxlu miras dövlətin. Java-da isə, çoxlu miras siniflər üçün icazə verilmir, yalnız interfeyslər üçün və bunlarda vəziyyət yoxdur.

Eynilə, insanlar soruşurlar ki, niyə C++ çoxlu irsiyyəti dəstəkləyir, lakin C# dəstəkləmir?

Çoxlu miras in C# C# çoxlu varisliyi dəstəkləmir , çünki onlar əlavə etməyi əsaslandırdılar çoxlu miras həddindən artıq mürəkkəblik əlavə etdi C# çox az fayda təmin edərkən. In C# , dərslərə yalnız icazə verilir miras almaq tək adlanan tək valideyn sinifindən miras.

C++ çoxlu varisliyi necə dəstəkləyir?

Bir çox başqa obyekt yönümlü proqramlaşdırma dillərindən fərqli olaraq, C++ imkan verir çoxlu miras . Çoxlu miras uşaq sinfinə imkan verir miras almaq birdən çox valideyn sinfindən. Heyvan və Sürünən sinifləri miras almaq ondan. Yalnız Animal sinfi nəfəs () metodunu ləğv edir.