Запитання з тегом «inheritance»

Спадкування - це спосіб повторного використання коду існуючих об'єктів або встановлення підтипу з існуючого об'єкта або обох, залежно від підтримки мови програмування.

9
Як проектування на спадщину може спричинити додаткові витрати? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 6 років тому . Так що я хотів наслідувати від sealed classв CSharp і погорів. Просто немає способу …
12 c#  inheritance 

2
Чому Java не підтримує приватне / захищене успадкування, як C ++? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

4
Паралельні ієрархії - частково однакові, частково різні
Є дуже багато подібних питань 1 ,2 ,3 ,4 , але в цьому питанні це не так, і рішення не здаються оптимальними. Це загальне питання про ООП, припускаючи, що наявні поліморфізм, генерики та міксини. Фактична мова, якою слід скористатись, є OOP Javascript (Typescript), але це та сама проблема в Java …

5
Чи слід віддавати перевагу складу чи спадку у цьому сценарії?
Розглянемо інтерфейс: interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } Цей інтерфейс реалізований низкою класів, які генерують хвилі різної форми (наприклад, SineWaveGeneratorта SquareWaveGenerator). Я хочу реалізувати клас, який формує на SoundWaveоснові музичних даних, а не необроблених звукових даних. Він отримав би назву ноти та довжину у перерахунку на удари …

5
Окремий інтерфейс для методів мутації
Я працював над рефакторингом якогось коду, і, думаю, я зробив перший крок у кролячій норі. Я пишу приклад на Java, але, мабуть, це може бути агностиком. У мене інтерфейс Fooвизначений як public interface Foo { int getX(); int getY(); int getZ(); } І реалізація як public final class DefaultFoo implements …

9
Який дизайн OO використовувати (чи є модель дизайну)?
У мене є два об'єкти, які являють собою "Бар / Клуб" (місце, де ви п'єте / спілкуєтесь). В одному сценарії мені потрібна назва смуги, адреса, відстань, слоган В іншому випадку мені потрібна назва смуги, адреса, URL-адреса веб-сайту, логотип Отже, у мене є два об'єкти, що представляють одне і те ж, …

5
Як реалізувати успадкування RealNumber та ComplexNumber?
Сподіваємось, не надто академічний ... Скажімо, мені потрібні справжні та складні номери у моїй бібліотеці SW. На основі співвідношення is-a (або тут ), дійсне число - це комплексне число, де b у уявній частині комплексного числа просто 0. З іншого боку, моя реалізація полягала б у тому, щоб дитина продовжувала …

5
Чи коли-небудь добре порушувати LSP?
Я продовжую це питання , але я перемикаю свою увагу з коду на принцип. З мого розуміння принципу заміщення Ліскова (LSP), які б методи не були в моєму базовому класі, вони повинні бути реалізовані в моєму підкласі, і відповідно до цієї сторінки, якщо ви перекриєте метод в базовому класі, і …

1
Чи існує ситуація, коли краще використовувати слабкі посилання замість простого складу?
Хоча документи Java вказують, що слабкі посилання в основному стосуються канонізації відображень, в Інтернеті ви знайдете багатьох , багатьох , багатьох людей, які стверджують, що WeakHashMap ідеально підходить для зберігання метаданих об’єктів протягом свого життя. Однак ніхто не заважає зробити зрозумілий І відповідний приклад. Використання WeakHashMap для додавання об'єкту якихось …

2
Чи є спадщина Пітона "спадковим" стилем успадкування чи композиційним стилем?
З огляду на те, що Python дозволяє отримати багаторазове успадкування, як виглядає ідіоматичне успадкування в Python? У мовах з одинарним успадкуванням, як-от Java, успадкування буде використовуватися, коли можна сказати, що один об'єкт "є-а" іншого об'єкта, і ви хочете поділити код між об'єктами (від батьківського об'єкта до дочірнього об'єкта). Наприклад, ви …

3
Спадкування: Чи код з надкласу практично * скопійований * у підклас, чи його * посилається на підклас *?
Клас Sub- це підклас класу Sup. Що це означає практично? Або іншими словами, яке практичне значення "спадкування"? Варіант 1: Код з Sup фактично копіюється в Sub. (як у "копіювати-вставити", але без скопійованого коду, який візуально відображається в підкласі). Приклад: methodA()метод, спочатку в Sup. Sub розширює Sup, тому methodA()його (практично) копіюють …

12
Чи "Якщо метод повторно використовується без змін, покладіть метод в базовий клас, а ще створіть інтерфейс"?
Мій колега придумав принципове правило вибору між створенням базового класу або інтерфейсу. Він каже: Уявіть кожен новий метод, який ви збираєтеся реалізувати. Для кожного з них врахуйте це: чи буде цей метод реалізований більш ніж одним класом саме в такому вигляді, без будь-яких змін? Якщо відповідь «так», створіть базовий клас. …

2
Чому використання конструкторів не рекомендується створювати прототипи?
Швидкий фон: У JavaScript функція конструктора для кожного типу об'єкта має prototypeвластивість. prototypeВідноситься до об'єкта , який кожен збудований об'єкт використовує в якості наступного кроку вгору в своїй ланцюга прототипів. Коли ви хочете, щоб один тип був притаманний іншому типу, ви можете встановити prototypeдочірній тип на новий екземпляр батьківського типу. …

6
Чому підкласифікація є занадто поганою (і, отже, чому ми повинні використовувати прототипи, щоб усувати її)?
Я читав схеми дизайну, і читав, що модель дизайну прототипу не усуває зайву підкласифікацію. Чому підкласифікація погана? Яку перевагу може мати використання прототипу над підкласифікацією?

5
Інтерфейс та спадщина: найкраще з обох світів?
Я 'відкрив' інтерфейси, і я почав їх любити. Краса інтерфейсу полягає в тому, що це договір, і будь-який об'єкт, який виконує цей договір, може використовуватися там, де потрібен цей інтерфейс. Проблема інтерфейсу полягає в тому, що він не може мати реалізацію за замовчуванням, що є болем за життєві властивості та …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.