Видео: Яагаад C++ хэл дээр олон өв залгамжлалыг дэмждэг ч Java дээр дэмждэггүй вэ?
2024 Зохиолч: Lynn Donovan | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2023-12-15 23:50
C++ , Нийтлэг lisp болон бусад цөөн хэдэн хэл олон өв залгамжлалыг дэмждэг байхад java үгүй дэмжлэг үзүүлэх тэр. Java зөвшөөрөхгүй олон өв залгамжлал үүнээс үүдэлтэй хоёрдмол байдлаас зайлсхийхийн тулд. Ийм асуудлын нэг жишээ бол алмазын асуудал юм олон өв залгамжлал.
Иймээс яагаад Java дээр олон өв залгамжлалыг дэмждэггүй вэ?
Java дэмждэг олон өв залгамжлал зөвхөн интерфейсээр дамжуулан. Анги нь хэдэн ч интерфэйсийг хэрэгжүүлэх боломжтой боловч зөвхөн нэг ангиллыг өргөтгөх боломжтой. Олон өв залгамжлал байна үгүй үхлийн аюултай алмазын асуудалд хүргэдэг учраас дэмжигдсэн. Та интерфэйсээс ямар ч функцийг олж авахгүй.
Мөн олон удамшлын хувьд Diamond асуудал гэж юу вэ? алмазын асуудал ” гэдэг нь зөвшөөрсний үр дүнд үүсч болох тодорхой бус байдал юм олон өв залгамжлал . Энэ нь ноцтой юм асуудал боломжийг олгодог хэлүүдэд (C++ гэх мэт). олон өв залгамжлал муж улсын. Харин Java хэл дээр олон өв залгамжлал ангиудад зөвшөөрөгдөөгүй, зөвхөн интерфэйсүүдэд зориулагдсан бөгөөд эдгээр нь төлөвийг агуулаагүй болно.
Үүний нэгэн адил хүмүүс яагаад C++ олон өв залгамжлалыг дэмждэг ч C# дэмждэггүй гэж асуудаг.
Олон өв залгамжлал in C# C# нь олон удамшлыг дэмждэггүй , учир нь тэд ингэж нэмсэн олон өв залгамжлал хэтэрхий төвөгтэй байдлыг нэмсэн C# хэтэрхий бага ашиг тустай байхад. онд C# , ангиудад зөвхөн зөвшөөрнө өвлөн авах ганц бие гэж нэрлэгддэг ганц бие эцэг эхийн ангиас өв залгамжлал.
C++ нь олон удамшлыг хэрхэн дэмждэг вэ?
Бусад олон объект хандалтат програмчлалын хэлнүүдээс ялгаатай нь C++ зөвшөөрдөг олон өв залгамжлал . Олон өв залгамжлал хүүхдийн ангид зөвшөөрдөг өвлөн авах нэгээс олон эцэг эхийн ангиас. Амьтан ба мөлхөгчдийн ангиуд өвлөн авах Үүнээс. Зөвхөн Animal анги нь breathe() аргыг хүчингүй болгодог.