Pse trashëgimia e shumëfishtë mbështetet në C++ por jo në Java?
Pse trashëgimia e shumëfishtë mbështetet në C++ por jo në Java?

Video: Pse trashëgimia e shumëfishtë mbështetet në C++ por jo në Java?

Video: Pse trashëgimia e shumëfishtë mbështetet në C++ por jo në Java?
Video: Review: Quiz 0 2024, Nëntor
Anonim

C++ , Lisp e zakonshme dhe disa gjuhë të tjera mbështet trashëgiminë e shumëfishtë derisa java nuk bën mbështetje atë. Java nuk lejon trashëgimi e shumëfishtë për të shmangur paqartësinë e shkaktuar prej saj. Një nga shembujt e një problemi të tillë është problemi i diamantit që shfaqet në trashëgimi e shumëfishtë.

Prandaj, pse trashëgimia e shumëfishtë nuk mbështetet në Java?

Java mbështet trashëgimi e shumëfishtë vetëm përmes ndërfaqeve. Një klasë mund të zbatojë çdo numër ndërfaqesh, por mund të zgjerojë vetëm një klasë. Trashëgimia e shumëfishtë është jo mbështetet sepse çon në problem vdekjeprurës me diamantin. Ju mos fitoni asnjë funksionalitet nga ndërfaqja.

Gjithashtu, cili është problemi i Diamantit në trashëgiminë e shumëfishtë? problemi i diamantit ” është një paqartësi që mund të lindë si pasojë e lejimit trashëgimi e shumëfishtë . Është një gjë serioze problem për gjuhët (si C++) që lejojnë trashëgimi e shumëfishtë të shtetit. Megjithatë, në Java, trashëgimi e shumëfishtë nuk lejohet për klasa, vetëm për ndërfaqe, dhe këto nuk përmbajnë gjendje.

Në mënyrë të ngjashme, njerëzit pyesin, pse C++ mbështet trashëgiminë e shumëfishtë, por C# jo?

Trashëgimia e shumëfishtë në C# C# nuk mbështet trashëgimi të shumëfishtë , sepse ata arsyetuan se duke shtuar trashëgimi e shumëfishtë i shtoi shumë kompleksitet C# duke ofruar shumë pak përfitim. Në C# , klasat lejohen vetëm të trashëgojnë nga një klasë me prind të vetëm, e cila quhet single trashëgimisë.

Si e mbështet C++ trashëgiminë e shumëfishtë?

Ndryshe nga shumë gjuhë të tjera programimi të orientuara nga objekti, C++ lejon trashëgimi e shumëfishtë . Trashëgimia e shumëfishtë lejon një klasë fëmijë të trashëgojnë nga më shumë se një klasë prind. Klasat e kafshëve dhe zvarranikëve trashëgojnë prej saj. Vetëm klasa Animal anulon metodën breathe().