Java бир нече мурасты колдойбу, эмне үчүн же эмне үчүн?
Java бир нече мурасты колдойбу, эмне үчүн же эмне үчүн?

Video: Java бир нече мурасты колдойбу, эмне үчүн же эмне үчүн?

Video: Java бир нече мурасты колдойбу, эмне үчүн же эмне үчүн?
Video: Создание аннотации в java [Java Annotations | Reflection api] 2024, Апрель
Anonim

java бир нече мурасты колдобойт класстар аркылуу, бирок интерфейстер аркылуу биз колдоно алабыз көп мурас . Java жок жок бир нече мурасты колдоо түздөн-түз, анткени ал эки кеңейтилген класстын бирдей метод аталышына ээ болгондо методдорду жокко чыгарууга алып келет.

Демек, Javaда бир нече мураска уруксат барбы?

C++, Common lisp жана башка бир нече тилдер колдойт көп тукум куучулук ал эми java аны колдобойт. Java жок бир нече мураска уруксат андан келип чыккан түшүнүксүздүктү болтурбоо үчүн. Мындай көйгөйдүн бир мисалы болуп алмаз маселеси болуп саналат көп тукум куучулук.

Ошондой эле билиңиз, эмне үчүн көп тукум куучулук жаман? менен коркунуч көп тукум куучулук татаалдыгы болуп саналат. Сиз таасир этиши мүмкүн болгондуктан көп Колдонмоңуздагы модулдарды ошол эле ата-эне класстарынан алганда, коддун өзгөрүшү жөнүндө ой жүгүртүү оңой эмес. Ар кандай ката каталардын чынжыр реакциясын алып келиши мүмкүн. Бул жерде көп тукум куучулук жемиштүү боло алат.

Ошондой эле билесизби, кайсы мурас Java тарабынан колдоого алынбайт Эмне үчүн?

Javaда бул эч качан болушу мүмкүн эмес, анткени жок көп тукум куучулук . Бул жерде эки интерфейс бир эле методго ээ болсо да, ишке ашыруучу класста бир гана ыкма болот жана аны да ишке ашыруучу аткарат. Класстарды динамикалык жүктөө ишке ашырууну түзөт көп тукум куучулук кыйын.

Эмне үчүн интерфейсте бир нече мурас колдонулат?

Бизде түшүндүргөндөй мурас бөлүм, көп тукум куучулук эмес колдоого алынган класстык учурда эки түшүнүксүздүктөн улам. Бирок, ошондой колдоого алынган болгон учурда интерфейс анткени эч кандай түшүнүксүздүк жок. Себеби, аны ишке ашыруу ишке ашыруу классы тарабынан камсыз кылынат. интерфейс Көрсөтүү{

Сунушталууда: