Вопросы с тегом «abstract-class»

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

11
Почему чисто виртуальная функция инициализируется 0?
Мы всегда объявляем чисто виртуальную функцию как: virtual void fun () = 0 ; Т.е. оно всегда присваивается 0. Что я понимаю, так это то, что это инициализирует запись vtable для этой функции в NULL, и любое другое значение здесь приводит к ошибке времени компиляции. Это понимание правильно или нет?

19
Visual Studio: как показать все классы, унаследованные от базового класса?
Как в Visual Studio показать все классы, унаследованные от базового класса? Например , в ASP.NET MVC есть несколько типов ActionResult , и все они наследуются от базового класса или реализуют его ActionResult. Похоже, что если вы просто не «знаете», что Viewи Jsonявляются действительными ActionResultтипами, вы не сможете легко найти эту …

6
Тестирование абстрактных классов
Как проверить конкретные методы абстрактного класса с помощью PHPUnit? Я ожидаю, что мне придется создать какой-то объект как часть теста. Тем не менее, я понятия не имею, лучшая практика для этого или если PHPUnit позволяет это.


3
C #: абстрактные классы должны реализовывать интерфейсы?
Мой тестовый код в C #: namespace DSnA { public abstract class Test : IComparable { } } Результатом является следующая ошибка компилятора: error CS0535: 'DSnA.Test' does not implement interface member 'System.IComparable.CompareTo(object)' Поскольку класс Testявляется абстрактным классом , почему компилятор требует его реализации интерфейса? Разве это требование не должно быть …

11
Абстрактные функции в Swift Language
Я хотел бы создать абстрактную функцию на быстром языке. Является ли это возможным? class BaseClass { func abstractFunction() { // How do I force this function to be overridden? } } class SubClass : BaseClass { override func abstractFunction() { // Override } }

9
Абстрактные свойства PHP
Есть ли способ определить свойства абстрактного класса в PHP? abstract class Foo_Abstract { abstract public $tablename; } class Foo extends Foo_Abstract { //Foo must 'implement' $property public $tablename = 'users'; }
126 php  oop  abstract-class 

7
Почему абстрактный класс, реализующий интерфейс, может пропустить объявление / реализацию одного из методов интерфейса?
Любопытная вещь происходит в Java, когда вы используете абстрактный класс для реализации интерфейса: некоторые из методов интерфейса могут полностью отсутствовать (т.е. нет ни абстрактного объявления, ни фактической реализации), но компилятор не жалуется. Например, учитывая интерфейс: public interface IAnything { void m1(); void m2(); void m3(); } следующий абстрактный класс легко …


17
Как реализовать абстрактный класс в Ruby?
Я знаю, что в Ruby нет концепции абстрактного класса. Но если это вообще нужно реализовать, как это сделать? Я пробовал что-то вроде ... class A def self.new raise 'Doh! You are trying to write Java in Ruby!' end end class B < A ... ... end Но когда я пытаюсь …

10
Идиома Pimpl против интерфейса виртуального класса Pure
Мне было интересно, что заставит программиста выбрать либо идиому Pimpl, либо чистый виртуальный класс и наследование. Я понимаю, что идиома pimpl включает одну явную дополнительную косвенность для каждого общедоступного метода и накладные расходы на создание объекта. С другой стороны, виртуальный класс Pure имеет неявную косвенную адресацию (vtable) для наследующей реализации, …

3
Как создать абстрактные свойства в абстрактных классах Python
В следующем коде я создаю базовый абстрактный класс Base. Я хочу, чтобы все классы, от которых наследуются, Baseпредоставляли nameсвойство, поэтому я сделал это свойство свойством @abstractmethod. Затем я создал подкласс Base, называемый Base_1, который предназначен для обеспечения некоторой функциональности, но при этом остается абстрактным. В нем нет nameсвойства Base_1, но, …

1
Как создать экземпляр анонимного класса абстрактного класса в Котлине?
Предположим, что KeyAdapterэто абстрактный класс с несколькими методами, которые можно переопределить. В java я могу: KeyListener keyListener = new KeyAdapter() { @Override public void keyPressed(KeyEvent keyEvent) { // ... } }; Как сделать то же самое в Котлине?

4
staticmethod и abc.abstractmethod: будет ли он смешиваться?
В моем приложении Python я хочу создать метод, который одновременно является staticmethodи abc.abstractmethod. Как мне это сделать? Я пробовал применить оба декоратора, но ничего не вышло. Если я сделаю это: import abc class C(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod @staticmethod def my_function(): pass Я получаю исключение *, и если я сделаю …

6
Соглашения об именах для абстрактных классов
Я отчетливо помню, что одно время Microsoft предлагала добавить суффикс «Base» к абстрактному классу, чтобы избежать того факта, что он абстрактный. Таким образом, у нас есть классы , как System.Web.Hosting.VirtualFileBase, System.Configuration.ConfigurationValidatorBase, System.Windows.Forms.ButtonBase, и, конечно же , System.Collections.CollectionBase. Но я заметил, что в последнее время многие абстрактные классы в Framework, похоже, …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.