Виртуалдык мурас алмаз маселесин кантип чечет?
Виртуалдык мурас алмаз маселесин кантип чечет?

Video: Виртуалдык мурас алмаз маселесин кантип чечет?

Video: Виртуалдык мурас алмаз маселесин кантип чечет?
Video: Чыгармачылык жана маданият\Учур чак 2024, Апрель
Anonim

Виртуалдык мурас чечет классикалык Алмаз маселеси ”. Бул бала класстын жалпы базалык класстын бир гана нускасын алуусун камсыздайт. Башкача айтканда, Жылан классы болот LivingThing классынын бир гана нускасы бар. Жаныбарлар жана сойлоп жүрүүчүлөр класстары бул мисалды бөлүшөт.

Буга байланыштуу мурастоодо алмаз маселеси кандай?

алмаз маселеси ” – бул көпкө жол берүүнүн натыйжасында келип чыгышы мүмкүн болгон бүдөмүк мурас . Бул олуттуу көйгөй бир нече тилдерге мүмкүнчүлүк берген тилдер үчүн (мисалы, C++). мурас мамлекеттин. InJava, бирок, бир нече мурас класстарга уруксат берилбейт, интерфейстер үчүн гана, жана алар абалды камтыбайт.

Андан кийин суроо туулат, виртуалдык базалык класс мураска кантип жардам берет? Виртуалдык базалык класстар мейкиндикти үнөмдөө жана эки ача пикирлерди болтурбоо жолун сунуштайт класс көп мурастарды колдонгон иерархиялар. Качан базалык класс катары белгиленет виртуалдык база , ал кыйыр катары иштей алат база анын маалымат мүчөлөрүн кайталоосуз бир нече жолу.

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

Виртуалдык мурас базалык класстын мүчө өзгөрмөлөрүнүн бир гана көчүрмөсүн камсыз кылган C++ ыкмасы тукум кууп өткөн неберелерден алынган класстар боюнча. Бул өзгөчөлүк бир нече үчүн абдан пайдалуу мурас , ал жасагандай виртуалдык туунду класс жана андан алынган бардык класстар үчүн жалпы субобъектти негиздегиле.

Interface алмаз маселесин кантип чечет?

Кантип колдонуу менен интерфейс Java тилинде чечүү the алмаз маселеси ? Демек, эки болсо интерфейстер Ошол эле метод кол тамгасы бар жана класс бул экөөнөн мураска ээ болууну каалайт (Javaда ишке ашырат). интерфейстер , мурастоо үчүн эч кандай "ыкма органы" жок, демек " алмаз мурас" чыгаруу качылат.

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