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

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

5
Як віртуальне успадкування вирішує неоднозначність “діаманта” (багаторазового успадкування)?
class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C { public: void eat(){ cout<<"D";} }; int main(){ A *a = new D(); a->eat(); } Я …

13
Java: виклик супер методу, який викликає переопределений метод
public class SuperClass { public void method1() { System.out.println("superclass method1"); this.method2(); } public void method2() { System.out.println("superclass method2"); } } public class SubClass extends SuperClass { @Override public void method1() { System.out.println("subclass method1"); super.method1(); } @Override public void method2() { System.out.println("subclass method2"); } } public class Demo { public static …

4
Спадщина та метод init у Python
Я початківець python. Я не можу зрозуміти спадщину і __init__(). class Num: def __init__(self,num): self.n1 = num class Num2(Num): def show(self): print self.n1 mynumber = Num2(8) mynumber.show() РЕЗУЛЬТАТ: 8 Це нормально. Але я замінюю Num2на class Num2(Num): def __init__(self,num): self.n2 = num*2 def show(self): print self.n1,self.n2 РЕЗУЛЬТАТ: Error. Num2 has …

9
Отримання імені дочірнього класу в батьківському класі (статичний контекст)
Я будую бібліотеку ORM з урахуванням повторного використання та простоти; все йде нормально, за винятком того, що я застряг через дурне обмеження спадщини. Будь ласка, розгляньте код нижче: class BaseModel { /* * Return an instance of a Model from the database. */ static public function get (/* varargs */) …

9
Коментар Спадщина для C # (насправді будь-яка мова)
Припустимо, у мене є цей інтерфейс public interface IFoo { ///<summary> /// Foo method ///</summary> void Foo(); ///<summary> /// Bar method ///</summary> void Bar(); ///<summary> /// Situation normal ///</summary> void Snafu(); } І цей клас public class Foo : IFoo { public void Foo() { ... } public void Bar() …

10
Чому C ++ не дозволяє успадковувати дружбу?
Чому дружба не є принаймні необов’язково успадковуваною в C ++? Я розумію, що транзитивність та рефлексивність заборонені із зрозумілих причин (я кажу це лише для того, щоб відмовитись від простих відповідей на цитати), але відсутність чогось подібного virtual friend class Foo;мене бентежить. Хтось знає історичну довідку цього рішення? Чи справді …

7
Як я можу отримати ім'я класу зі статичного виклику в розширеному класі PHP?
У мене два класи: Actionі MyAction. Останній оголошується як: class MyAction extends Action {/* some methods here */} Мені потрібен лише метод у Actionкласі (тільки в ньому, оскільки буде багато успадкованих класів, і я не хочу реалізовувати цей метод у всіх), який поверне ім'я класу із статичного виклику. Ось про …
93 php  oop  inheritance 

3
Як я можу динамічно створювати похідні класи з базового класу
Наприклад, у мене є базовий клас наступним чином: class BaseClass(object): def __init__(self, classtype): self._type = classtype З цього класу я виводжу кілька інших класів, напр class TestClass(BaseClass): def __init__(self): super(TestClass, self).__init__('Test') class SpecialClass(BaseClass): def __init__(self): super(TestClass, self).__init__('Special') Чи є хороший, пітонічний спосіб динамічного створення цих класів за допомогою виклику функції, …

2
Функція з тим самим іменем, але різним підписом у похідному класі
У мене є функція з тим самим іменем, але з різним підписом у базовому та похідних класах. Коли я намагаюся використовувати функцію базового класу в іншому класі, який успадковується від похідного, я отримую повідомлення про помилку. Дивіться наступний код: class A { public: void foo(string s){}; }; class B : …

5
Чи ВСІ віртуальні функції потрібно реалізовувати у похідних класах?
Це може здатися простим запитанням, але я не можу знайти відповідь ніде більше. Припустимо, у мене є таке: class Abstract { public: virtual void foo() = 0; virtual void bar(); } class Derived : Abstract { public: virtual void foo(); } Чи нормально, що похідний клас не реалізує функцію bar …
91 c++  inheritance 

3
Коли використовувати val або def в рисах Scala?
Я переглядав ефективні слайди Scala, і на слайді 10 згадується ніколи не використовувати valв a traitдля абстрактних членів і використовувати defзамість них. У слайді детально не згадується, чому використання абстрактних valв a traitє анти-шаблоном. Буду вдячний, якщо хтось зможе пояснити найкращі практики використання val проти def як риси для абстрактних …

2
Спадкування Python: TypeError: object .__ init __ () не приймає жодних параметрів
Я отримую цю помилку: TypeError: object.__init__() takes no parameters при запуску коду я насправді не бачу, що я тут роблю неправильно: class IRCReplyModule(object): activated=True moduleHandlerResultList=None moduleHandlerCommandlist=None modulename="" def __init__(self,modulename): self.modulename = modulename class SimpleHelloWorld(IRCReplyModule): def __init__(self): super(IRCReplyModule,self).__init__('hello world')

12
Динамічне прив'язка Java та перевизначення методу
Вчора у мене було двогодинне технічне співбесіду по телефону (яке я пройшов, вуху!), Але я повністю заглушив наступне питання щодо динамічного прив'язки в Java. І це подвійно спантеличує, тому що я викладав цю концепцію студентам, коли ще кілька років тому працював на технічному рівні, тому перспектива, що я дав їм …

10
Помилка Java: неявний суперконструктор не визначений для конструктора за замовчуванням
У мене є якийсь простий код Java, який схожий на цей за своєю структурою: abstract public class BaseClass { String someString; public BaseClass(String someString) { this.someString = someString; } abstract public String getName(); } public class ACSubClass extends BaseClass { public ASubClass(String someString) { super(someString); } public String getName() { …

3
Objective-C множинне успадкування
У мене є 2 класи, один включає методA, а інший - методB. Тож у новому класі мені потрібно замінити методи methodA та methodB. Отже, як мені досягти множинного успадкування за ціллю C? Я трохи плутаюсь із синтаксисом.

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