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

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

2
Оператор 'instanceof' поводиться по-різному щодо інтерфейсів та класів
Я хотів би знати про наступну поведінку instanceofоператора в Java. interface C {} class B {} public class A { public static void main(String args[]) { B obj = new B(); System.out.println(obj instanceof A); //Gives compiler error System.out.println(obj instanceof C); //Gives false as output } } Чому це так? Існує …

4
Наслідування класу справи Scala
У мене є додаток, заснований на Squeryl. Я визначаю свої моделі як кейси, здебільшого тому, що мені зручно мати методи копіювання. У мене є дві моделі, які суворо пов’язані. Поля однакові, багато операцій спільні, і їх слід зберігати в одній таблиці БД. Але є така поведінка, яка має сенс лише …

16
Заміна проти приховування Java - заплутана
Я збентежений тим, як заміщення відрізняється від приховування в Java. Хтось може надати більше деталей про те, як вони відрізняються? Я прочитав підручник Java, але зразок коду все одно змусив мене розгубитися. Щоб бути більш зрозумілим, я добре розумію перевизначення. Моя проблема полягає в тому, що я не бачу, як …

1
перетворення з похідного * на базовий * існує, але недоступне
Чому наступний код видає цю помилку, хоча c є структурою і має загальнодоступне успадкування за замовчуванням ?? struct c { protected: int i; public: c(int ii=0):i(ii){} virtual c *fun(); }; c* c::fun(){ cout<<"in c"; return &c(); } class d : c { public: d(){} d* fun() { i = 9; …
88 c++  inheritance 

7
Як викликати властивість базового класу, якщо ця властивість перезаписується у похідному класі?
Я міняю деякі мої класи від широкого використання геттерів та сеттерів до більш пітонічного використання властивостей. Але зараз я застряг, тому що деякі з моїх попередніх геттерів або установників викликали б відповідний метод базового класу, а потім виконували щось інше. Але як цього можна досягти за допомогою властивостей? Як викликати …

6
Як змоделювати RESTful API з успадкуванням?
У мене є ієрархія об’єктів, яку мені потрібно виставити через RESTful API, і я не впевнений, як мають бути структуровані мої URL-адреси та що вони повинні повертати. Я не міг знайти найкращих практик. Скажімо, у мене є собаки та коти, які успадковують тварин. Мені потрібні операції CRUD на собаках і …

6
Спадщина і рекурсія
Припустимо, ми маємо такі класи: class A { void recursive(int i) { System.out.println("A.recursive(" + i + ")"); if (i > 0) { recursive(i - 1); } } } class B extends A { void recursive(int i) { System.out.println("B.recursive(" + i + ")"); super.recursive(i + 1); } } Тепер давайте дзвонимо …

7
Серіалізація XML та спадкові типи
Виходячи з мого попереднього запитання, я працював над тим, щоб моя об’єктна модель серіалізувалася до XML. Але я зараз зіткнувся з проблемою (несподіваний сюрприз!). Проблема у мене полягає в тому, що у мене є колекція абстрактного базового класу, яка заповнюється конкретними похідними типами. Я вважав, що було б добре просто …

11
Чому ми призначаємо батьківське посилання на дочірній об’єкт у Java?
Я задаю досить просте запитання, але я трохи розгублений у цьому. Припустимо, у мене є клас Parent: public class Parent { int name; } І мати ще один клас Child: public class Child extends Parent{ int salary; } І нарешті мій клас Main.java public class Main { public static void …

11
Який сенс успадкування в Python?
Припустимо, у вас така ситуація #include <iostream> class Animal { public: virtual void speak() = 0; }; class Dog : public Animal { void speak() { std::cout << "woff!" <<std::endl; } }; class Cat : public Animal { void speak() { std::cout << "meow!" <<std::endl; } }; void makeSpeak(Animal &a) …

7
Яка правильна альтернатива успадкуванню статичних методів?
Я розумію, що успадкування статичних методів не підтримується в C #. Я також прочитав ряд обговорень (в тому числі тут), в яких розробники заявляють про необхідність цієї функціональності, на що типовою відповіддю є "якщо вам потрібне статичне успадкування членів, у вашому дизайні є недолік". Добре, враховуючи, що ООП не хоче, …
83 c#  .net  inheritance  static 

6
Спадщина: "A" - недоступна основа "B"
$ cat inheritance.cpp #include <iostream> using namespace std; class A { }; class B : private A { }; int main() { A* ab = new B; } $ $ g++ inheritance.cpp inheritance.cpp: In function 'int main()': inheritance.cpp:9: error: 'A' is an inaccessible base of 'B' $ Я просто не …
82 c++  inheritance 

7
що таке об’єкт Class (java.lang.Class)?
У документації Java для Classсказано: ClassОб'єкти будуються автоматично віртуальною машиною Java при завантаженні класів та викликах defineClassметоду в завантажувачі класів. Що це за Classпредмети? Вони однакові з об'єктами, створеними з класу за допомогою виклику new? Крім того, наприклад, object.getClass().getName()як можна все ввести для суперкласу Class, навіть якщо я не успадковую …

11
Коли я використовую super ()?
На даний момент я вивчаю успадкування класів у своєму курсі Java, і я не розумію, коли використовувати super()виклик? Редагувати: я знайшов цей приклад коду, де використовується:super.variable class A { int k = 10; } class Test extends A { public void m() { System.out.println(super.k); } } Тому я розумію, що …

3
Спадкування Javascript: викликати суперконструктор або використовувати ланцюжок прототипів?
Зовсім недавно я читав про використання дзвінків JavaScript у MDC https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call одне посилання прикладу, показаного нижче, я досі не розумію. Чому вони тут використовують спадщину так? Prod_dept.prototype = new Product(); це необхідно? Оскільки в. Є виклик суперконструктору Prod_dept() так чи інакше, ось так Product.call це просто із загальної поведінки? Коли …

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