抽象クラス、抽象メソッド

1
<?php
	abstract class Test{
		protected $test_value=1;

		abstract public function test_method();
	}

	class Test2 extends Test{
		public function test_method(){
			return $this->test_value;
		}
	}

	$test_class = new Test2();
	echo $test_class->test_method();
抽象クラスは、子クラスに未定義のメソッドなどの定義を任せて自身は他のクラスなどにも使えるような汎用性をもった共有な機能のみを持った基幹クラスの定義時などに使用されます。
抽象クラスはインスタンスを作成できない点に注意してください。

抽象クラスは、
abstract class クラス名

とclassの前にabstractを付けることで定義することができます。

抽象メソッドは、処理内容などを記入せずに子クラスに処理内容を任せるときに使用します。
abstract function メソッド名()

の形式で定義することができます。
抽象メソッドは、抽象クラスにしか定義できない点に注意してください。

また、再定義していない抽象メソッドがある状態でインスタンスを作成しようとするとエラーになるので注意してください。