次の方法で共有


abstract 修飾子

更新 : 2007 年 11 月

クラスの拡張が必要であること、またはメソッドやプロパティの実装が派生クラスで提供される必要があることを宣言します。

abstract statement

引数

  • statement
    必ず指定します。クラス、メソッド、またはプロパティの定義。

解説

abstract 修飾子は、実装を持たないクラスのメソッドまたはプロパティ、またはこれらのメソッドを含むクラスに対して使用します。抽象メンバを持つクラスは、new 演算子ではインスタンス化できません。抽象基本クラスから、抽象クラスおよび非抽象クラスの両方を派生できます。

abstract 修飾子は、クラスのメソッドとプロパティ、およびクラスに指定できます。abstract メンバを含むクラスには、abstract 修飾子を指定する必要があります。インターフェイスとそのメンバは暗黙的に抽象であり、abstract 修飾子を使用できません。フィールドには abstract を指定できません。

abstract 修飾子は、ほかの継承の修飾子 (final) と共に使用することはできません。既定では、クラスのメンバは abstractfinal のどちらでもありません。継承の修飾子は、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.

必要条件

バージョン .NET

参照

概念

変数と定数のスコープ

参照

final 修飾子

static 修飾子

var ステートメント

function ステートメント

class ステートメント

new 演算子

その他の技術情報

修飾子