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

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

574
Можем ли мы создать экземпляр абстрактного класса?

Во время одного из моих интервью меня спросили: «Можем ли мы создать экземпляр абстрактного класса?» Мой ответ был «Нет, мы не можем». Но интервьюер сказал мне: «Неправильно, мы можем». Я немного поспорил об этом. Затем он сказал мне попробовать это дома. abstract class my { public void mymethod()...

322
Можно ли создавать абстрактные классы в Python?

Как я могу сделать класс или метод абстрактным в Python? Я пытался переопределить __new__() так: class F: def __new__(cls): raise Exception("Unable to create an instance of abstract class %s" %cls) но теперь, если я создам класс G который наследует от Fтак: class G(F): pass тогда я не могу создать...

197
Java абстрактный интерфейс

Рассмотрим пример (который компилируется в Java) public abstract interface Interface { public void interfacing(); public abstract boolean interfacing(boolean really); } Почему интерфейс должен быть «объявлен» абстрактным? Есть ли другие правила, которые применяются с абстрактным интерфейсом?...

184
Как я могу определить, является ли класс Java абстрактным отражением

Я изучаю классы в файле Jar и хочу найти те, которые не являются абстрактными. Я могу решить эту проблему, создавая экземпляры классов и перехватывая InstantiationException, но это приводит к снижению производительности, так как некоторые классы сильно загружаются. Я не могу найти ничего такого,...

176
Расширить класс данных в Котлине

Классы данных, кажется, заменяют старомодные POJO в Java. Вполне ожидаемо, что эти классы позволят наследовать, но я не вижу удобного способа расширить класс данных. Что мне нужно, это что-то вроде этого: open data class Resource (var id: Long = 0, var location: String = "") data class Book (var...

143
Почему нужно объявлять метод интерфейса Java как абстрактный?

Сегодня я использовал функцию рефакторинга «pull interface» в Eclipse, чтобы создать интерфейс на основе существующего класса. В диалоговом окне предлагается создать все новые методы нового интерфейса как «абстрактные» методы. Какая польза от этого? Я думал, что тот факт, что вам было разрешено...

121
Почему в PHP 5.2+ запрещены методы абстрактного статического класса?

После включения строгих предупреждений в PHP 5.2 я увидел множество предупреждений о строгих стандартах из проекта, который изначально был написан без строгих предупреждений: Строгие стандарты : статическая функция Program :: getSelectSQL () не должна быть абстрактной в Program.class.inc...

108
Почему методы интерфейса C # не объявлены абстрактными или виртуальными?

Методы C # в интерфейсах объявляются без использования virtualключевого слова и переопределяются в производном классе без использования overrideключевого слова. Для этого есть причина? Я предполагаю, что это всего лишь удобство языка, и, очевидно, CLR знает, как с этим справиться (методы не...

102
Почему не абстрактные поля?

Почему классы Java не могут иметь абстрактные поля, как у них могут быть абстрактные методы? Например: у меня есть два класса, которые расширяют один и тот же абстрактный базовый класс. Каждый из этих двух классов имеет идентичный метод, за исключением константы String, которая является сообщением...

91
Swift - метод класса, который должен быть переопределен подклассом

Есть ли в Swift стандартный способ сделать "чистую виртуальную функцию", т.е. тот, который должен быть переопределен каждым подклассом, и который, если это не так, вызывает ошибку времени компиляции?...