ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト指向の継承
この記事では、主に PHP のオブジェクト指向の継承を紹介します。これは、必要な友人に参照していただけるようになりました。
継承
サブクラスは、親クラスからすべてを継承します。 —パブリックおよび保護されたプロパティとメソッド。
キーワード extends
継承を使用すると、あるクラスは別のクラスを統合し、複数のクラスを継承することはできません。
子类、父类、基类、超类、派生类
サブクラス、派生クラス ——> 親クラス、基本クラス、スーパークラスとは、継承されるクラスを指します。
例
<?php class Father { public $a = 'public'; protected $b = 'protected'; private $c = 'private'; public function func1() { echo 'This is public function','<br/>'; } protected function func2() { echo 'This is protected function','<br/>'; } private function func3() { echo 'This is private function','<br/>'; } } // 继承父类 class Child extends Father { // 子类中调用继承来的方法 public function test() { $this -> func1(); $this -> func2(); //$this -> func3(); 私有方法不可以调用 } } // 实例化子类 $son = new Child(); // 尝试调用属性 echo $son -> a,'<br/>'; //echo $son->b; 不能直接输出b //echo $son -> c; 继承都没继承,当然不能输出 // 尝试调用方法 //$son -> func1(); //$son -> func2(); 不能在类外调用func2 //$son -> func3(); 继承都没继承,当然不能调用 // 间接调用继承自父类的普通方法 $son -> test();書き換え
定義:
を定義し、パラメータの数は同じ; 2) サブクラスが親クラスのメソッドをオーバーライドする場合、PHP は親クラスのオーバーライドされたメソッドを呼び出しません。
3) 親クラスのメソッドを呼び出すかどうかはサブクラスによって異なります。
4) メソッド カバレッジを実装する場合、アクセス
修飾子は異なる、 にすることができますが、サブクラス の アクセス スコープは、親クラス のアクセス スコープ以上である必要があります。 使用:
parent:: 访问父类中被重写的属性和方法
<?php class Father { public function shuo($num) { echo 'a a o o'; } } class Son extends Father { public function shuo($num) { // 调用父类中被重写的方法 // parent::shuo($num); echo 'Hello World'; } public function test($num) { parent::shuo($num); } } // 实例化子类 $son1 = new Son(); $son1 -> shuo(1); // Hello World $son1 -> test(1); // a a o ofinalキーワード
親クラスのメソッドがfinal宣言されている場合、サブクラスはそのメソッドをオーバーライドできません。
クラスがfinal宣言されている場合、それを継承することはできません。
例
<?php class Father { final public function test() { echo 'hello'; } } class Son extends Father { public function test() { echo '你好'; } } // 实例化子类 $son1 = new Son(); $son1 -> test(); // 报错,函数不能被重写
以上がPHP オブジェクト指向の継承の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。