抽象クラス@PHP
抽象クラスを作成します。
抽象クラスは、インターフェースに似ていますが、
処理を実装することができます。
クラスは、abstract修飾子で宣言します。
また、抽象メソッドもabstractで宣言し、処理を実装しません。
処理の実装に関しては、抽象クラスを継承したクラスで実装します。
抽象クラスは、インスタンスを生成することができません。
継承したクラスを元にインスタンスを作成して、利用します。
<?php
//抽象クラス
abstract class AbstractClass {
protected $str;
//抽象メソッド
abstract public function setStr($str);
abstract public function getStr();
//メソッド
public function setStr2($str) {
$this->str = $str;
}
}
//抽象クラスを継承
class ExtendAbstractClass extends AbstractClass {
//メソッドを実装
public function setStr($str) {
$this->str = $str;
}
public function getStr() {
return $this->str;
}
}
//インスタンス生成
$obj = new ExtendAbstractClass();
//継承クラスで実装したメソッド呼び出し
$obj->setStr("AAA");
print $obj->getStr();
//抽象クラスで実装してあったメソッド呼び出し
$obj->setStr2("BBB");
print $obj->getStr();
?>
|