abstract 한정자
업데이트: 2007년 11월
클래스를 확장하거나 메서드 또는 속성의 구현이 파생 클래스에 의해 제공되어야 한다고 선언합니다.
abstract statement
인수
- statement
필수적 요소. 클래스, 메서드 또는 속성 정의입니다.
설명
abstract 한정자는 구현이 없는 클래스 또는 해당 메서드가 포함된 클래스에서 메서드나 속성에 대해 사용됩니다. 추상 멤버가 있는 클래스는 new 연산자로 인스턴스화할 수 없습니다. 추상 기본 클래스에서 추상 및 비추상 클래스를 모두 파생할 수 있습니다.
클래스와 클래스의 메서드와 속성을 abstract 한정자로 표시할 수 있습니다. 클래스에 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.