Модификатор abstract
Обновлен: Ноябрь 2007
Объявляет, что класс должен быть расширен или что в производном классе необходимо предоставить реализацию свойства или метода.
abstract statement
Аргументы
- statement
Обязательный. Определение класса, метода или свойства.
Заметки
Модификатор abstract используется для методов или свойств класса, для которых не указана реализация, или для класса, содержащего подобные методы. Экземпляр класса, содержащего абстрактные члены, нельзя создать с помощью оператора new. Абстрактному базовому классу могут наследовать как абстрактные, так и неабстрактные классы.
Модификатором abstract можно помечать методы и свойства классов и сами классы. Если класс содержит абстрактные члены, он должен быть помечен модификатором abstract. Интерфейсы и члены интерфейсов, которые неявно являются абстрактными, не могут принимать модификатор abstract. Поля не могут быть абстрактными.
Модификатор abstract нельзя использовать одновременно с другими модификаторами наследования (final). По умолчанию, члены классов не содержат модификаторы abstract и final. Модификаторы наследования нельзя использовать одновременно с модификатором static.
Пример
В следующем примере показано использование модификатора abstract.
// CAnimal is an abstract base class.
abstract class CAnimal {
abstract function printQualities();
}
// CDog and CKangaroo are derived classes of CAnimal.
class CDog extends CAnimal {
function printQualities() {
print("A dog has four legs.");
}
}
class CKangaroo extends CAnimal {
function printQualities() {
print("A kangaroo has a pouch.");
}
}
// Define animal of type CAnimal.
var animal : CAnimal;
animal = new CDog;
// animal uses printQualities from CDog.
animal.printQualities();
animal = new CKangaroo;
// animal uses printQualities from CKangaroo.
animal.printQualities();
После выполнения этой программы выводится следующий результат:
A dog has four legs.
A kangaroo has a pouch.