PHP: Hypertext Preprocessor
抽象クラスの定義
クラス名にfinalと同じ様に接頭辞としてabstractをつければ、それは抽象クラスとなる。メソッドにつければ、それは必ず継承したクラスで実装されねばならない(引数は同じである必要がある)。具体的なソースを示す。
<?php
abstract class Alpha
{
	abstract public function methodAlpha($arg1, $arg2);

	protected function methodBeta($arg1)
	{
		echo "Alpha クラスで実装されたmathodBeta メソッド¥n";
	}
	
	public function __destruct()
	{
		echo "インスタンスを破棄、メモリを開放[Alpha::destruct]¥n";
	}
}

class Beta extends Alpha
{
	public function __construct()
	{
		$this->methodAlpha("","");
		$this->methodBeta("");
	}
	
	public function methodAlpha($arg1, $arg2)
	{
		echo "Beta クラスで実装されたmethodAlpha メソッド¥n";
	}
}

new Beta();
?>
__construct() は PHP 5からインスタンス生成の時に自動的に呼び出されるコンストラクタ (__destruct()、デストラクタも実装された)。protected (保護可視性) は、継承されたクラス・または内部 ($this、parentなど) でないと、使えないようにする宣言である。抽象化されたクラスはインスタンスを生成出来ない。よって new Alpha(); とすることは出来ない。また、抽象化されたメソッドは継承しないと使用することは出来ない。

戻る