Виртуалды мұра алмас мәселесін қалай шешеді?
Виртуалды мұра алмас мәселесін қалай шешеді?

Бейне: Виртуалды мұра алмас мәселесін қалай шешеді?

Бейне: Виртуалды мұра алмас мәселесін қалай шешеді?
Бейне: 💵 АКТИВТЕР САТЫП АЛУ идеялары 🧠 Бүгіннен бастап [үшін] 2024, Сәуір
Anonim

Виртуалды мұра шешеді классикалық» Алмаз мәселесі ». Ол еншілес сыныптың жалпы базалық сыныптың бір ғана данасын алуын қамтамасыз етеді. Басқаша айтқанда, Жылан сыныбы ерік LivingThing класының бір ғана данасы бар. Жануарлар және Бауырымен жорғалаушы сыныптары осы мысалды бөліседі.

Осыған байланысты мұрагерлікте алмаз мәселесі қандай?

« алмаз мәселесі ” – бұл көптікке рұқсат берудің салдары ретінде туындауы мүмкін екіұштылық мұрагерлік . Бұл ауыр мәселе бірнеше тілге мүмкіндік беретін тілдер үшін (мысалы, C++). мұрагерлік мемлекеттің. Алайда Java-да бірнеше мұрагерлік рұқсат етілмейді, тек интерфейстер үшін, және олар күйді қамтымайды.

Содан кейін виртуалды базалық класс мұрагерлікке қалай көмектеседі? Виртуалды базалық сыныптар кеңістікті үнемдеу және екіұштылықтан аулақ болу жолын ұсыныңыз сынып көп мұраларды пайдаланатын иерархиялар. Қашан а базалық класс ретінде көрсетілген виртуалды база , ол жанама ретінде әрекет ете алады негіз оның деректер мүшелерінің қайталануынсыз бір реттен артық.

Сондай-ақ, виртуалды қоғамдық мұра дегеніміз не екенін біліңіз?

Виртуалды мұра базалық сыныптың мүше айнымалыларының бір ғана көшірмесін қамтамасыз ететін C++ әдісі мұраланған немереден шыққан сыныптар бойынша. Бұл мүмкіндік бірнеше адамға өте пайдалы мұрагерлік , ол жасайды виртуалды туынды сынып және одан алынған барлық сыныптар үшін жалпы ішкі нысанды негіздеңіз.

Интерфейс алмаз мәселесін қалай шешеді?

Қалай арқылы интерфейс Java тілінде шешу the алмаз мәселесі ? Демек, егер екі интерфейстер бірдей әдіс қолтаңбасы бар және сынып осы екеуінен toinherit (Java-да іске асырады) қажет интерфейстер , мұраға алатын «әдіс денесі» жоқ, демек « алмаз мұра» мәселе аулақ болады.

Ұсынылған: