抽象クラス
他のクラスによって継承されることを前提としたクラス。そのクラス自体をインスタンス化して使うことはできない。
クラスの宣言時にabstract
をつける。
<?php abstract class BaseUser{ public $name; abstract public function showName(); } class User extends BaseUser{ public function showName(){ echo 'SATO'; } } ?>
実装のあるメソッド(ここではshowName)を持つことが可能である。
インターフェース
抽象クラスと似ているが、クラス内では実体のない抽象メソッドしか持つことができない。
また、1つのみのクラスしか継承できない抽象クラスに対し、複数のクラスを継承することができる。
interface classInterface { const val = 'ABC'; public function func(); }