Запитання з тегом «abstract-class»

Абстрактні заняття - це класи, які неможливо уявити. Вони існують для надання загальної характеристики функціоналу та інтерфейсу для кількох конкретних класів.

11
Чому чиста віртуальна функція ініціалізується на 0?
Ми завжди оголошуємо чисту віртуальну функцію такою: virtual void fun () = 0 ; Тобто, це завжди присвоюється 0. Я розумію, що це ініціалізація запису vtable для цієї функції до NULL, а будь-яке інше значення тут призводить до помилки часу компіляції. Це правильне розуміння чи ні?

6
Тестування абстрактних занять
Як перевірити конкретні методи абстрактного класу за допомогою PHPUnit? Я б очікував, що мені доведеться створити якийсь об’єкт у рамках тесту. Хоча я не знаю, що найкраща практика для цього чи якщо PHPUnit це дозволяє.


19
Visual Studio: Як відобразити всі класи, успадковані від базового класу?
Як у візуальній студії відображаються всі класи, успадковані від базового класу? Наприклад , в ASP.NET MVC є кілька типів " ActionResult " - і всі вони успадковують базовий клас / реалізують його ActionResult. Схоже, якщо ви просто не знаєте, що це Viewі Jsonє дійсними ActionResultтипами, ви не зможете легко знайти …

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


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
Як реалізувати абстрактний клас у рубіні?
Я знаю, що в рубіні немає поняття абстрактного класу. Але якщо це взагалі потрібно реалізувати, як це робити? Я спробував щось на кшталт ... class A def self.new raise 'Doh! You are trying to write Java in Ruby!' end end class B < A ... ... end Але коли я …


10
Pimpl idiom vs Pure віртуальний інтерфейс класу
Мені було цікаво, що змусить програміста вибрати або ідіому Pimpl, або чистий віртуальний клас та спадщину. Я розумію, що ідіома pimpl поставляється з однією явною додатковою непрямістю для кожного публічного методу та над створенням об'єкта. Чистий віртуальний клас, з іншого боку, поставляється з неявним непрямим впливом (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.abriefmethod`: Чи буде він поєднуватися?
У своєму додатку Python я хочу зробити метод, який є і a, staticmethodі an 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. Але я помітив, що, пізно, багато абстрактних …

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