Вопросы с тегом «inheritance»

88
Переопределение против сокрытия Java - запутано

Я не понимаю, чем отличается переопределение от скрытия в Java. Может ли кто-нибудь предоставить более подробную информацию о том, чем они отличаются? Я прочитал Учебное пособие по Java, но пример кода по-прежнему меня смутил. Чтобы быть более ясным, я хорошо понимаю переопределение. Моя проблема...

88
Оператор 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 } }...

87
Как вызвать свойство базового класса, если это свойство перезаписывается в производном классе?

Я меняю некоторые свои классы с широкого использования геттеров и сеттеров на более питоническое использование свойств. Но теперь я застрял, потому что некоторые из моих предыдущих методов получения или установки вызывали соответствующий метод базового класса, а затем выполняли что-то еще. Но как...

87
Как смоделировать RESTful API с наследованием?

У меня есть иерархия объектов, которую мне нужно раскрыть через RESTful API, и я не уверен, как должны быть структурированы мои URL-адреса и что они должны возвращать. Я не смог найти лучших практик. Скажем, у меня есть собаки и кошки, унаследованные от животных. Мне нужны CRUD-операции собакам и...

86
Наследование и рекурсия

Предположим, у нас есть следующие классы: 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); } } Теперь давайте...

85
Сериализация XML и унаследованные типы

Следуя моему предыдущему вопросу, я работал над тем, чтобы моя объектная модель была сериализована в XML. Но теперь я столкнулся с проблемой (сюрприз quelle!). У меня проблема в том, что у меня есть коллекция абстрактного базового класса, которая заполняется конкретными производными типами. Я...

84
Какая альтернатива наследованию статических методов?

Я понимаю, что наследование статических методов не поддерживается в C #. Я также прочитал ряд обсуждений (в том числе здесь), в которых разработчики заявляют о необходимости этой функциональности, на что обычно отвечают: «Если вам нужно статическое наследование членов, в вашем дизайне есть изъян»....

83
В чем смысл наследования в 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!"...

83
Являются ли значения по умолчанию в JDK 8 формой множественного наследования в Java?

Новая функция, входящая в JDK 8, позволяет добавлять к существующему интерфейсу, сохраняя двоичную совместимость. Синтаксис похож на public interface SomeInterface() { void existingInterface(); void newInterface() default SomeClass.defaultImplementation; } Таким образом, для всех существующих...

82
Наследование javascript: вызвать суперконструктор или использовать цепочку прототипов?

Совсем недавно я прочитал об использовании вызовов JavaScript в MDC. https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call одну ссылку на пример, показанный ниже, я все еще не понимаю. Почему они используют наследование вот так Prod_dept.prototype = new Product(); это...

33
Столкновение пространства имен C ++ в конструкторе копирования

У меня есть следующий код: namespace A { struct Foo { int a; }; } struct Foo { int b; }; struct Bar : public A::Foo { Bar(Foo foo) { c = foo.b; } int c; }; Компиляторы C ++ жалуются на «c = foo.b», потому что A :: Foo не имеет члена с именем b. Если я изменяю тип параметра Bar с помощью :: Foo, он...

23
Почему размер класса в c ++ зависит от публичного / частного статуса членов данных?

Из того, что я знаю, размер класса в C ++ зависит от следующих факторов: Размер всех нестатических элементов данных. Порядок данных членов. Если заполнение байтов включено или нет. Размер его непосредственного базового класса. Существование виртуальных функций. Режим наследования (виртуальное...

14
Почему оптимизация пустой базы запрещена, если пустой базовый класс также является переменной-членом?

Оптимизация пустой базы - это здорово. Тем не менее, он имеет следующие ограничения: Оптимизация пустой базы запрещена, если один из пустых базовых классов также является типом или базой типа первого не статического члена данных, поскольку два базовых подобъекта одного типа должны иметь разные...

14
Подклассы: возможно ли переопределить свойство обычным атрибутом?

Баунти истекает в течение 2 дней . Ответы на этот вопрос могут получить +500 к репутации. Пол Панцер хочет наградить существующий ответ . Давайте предположим, что мы хотим создать семейство классов, которые являются различными реализациями или специализациями всеобъемлющей концепции. Давайте...