ホームページ  >  記事  >  バックエンド開発  >  phpのクラスとオブジェクト

phpのクラスとオブジェクト

WBOY
WBOYオリジナル
2016-06-13 12:13:03926ブラウズ

PHP のクラスとオブジェクト

オブジェクト指向は今日のプログラミングの主流です。研究開発担当者はオブジェクト指向についてある程度理解しているかもしれませんが、あまり一般的に使用されていないものの一部は特に明確ではないかもしれません。場合によってはそれも便利です。ここでいくつかのヒントを紹介します。


1. Final キーワードに関する知識:


1. Final キーワードはメソッドとしてサブクラス化できます。受け継がれた。以下のように:

class A{    final function operation(){        echo 'a';    }}class B extends A{}$a=new B();$a->operation();

結果: a


2. クラスとしての最後のキーワード継承できないものは以下の通りです。


<?php final class A{    final function operation(){        echo &#39;a&#39;;    }}class B extends A{}$a=new B();$a->operation();


以下のエラーが発生します。発生:

( ! ) 致命的なエラー: クラス B は、D:wampwwwexambleindex19.php 行 9


3. メソッドとしての最後のキーワードはサブクラスによってオーバーライドできません。つまり、次のように、サブクラスが同じメソッドを持つことはできません。 🎜>

次のエラーが発生します:

 class A{    final function operation(){        echo 'a';    }} class B extends A{     function operation(){        echo 'a';    }}$a=new B();$a->operation();

の最終メソッド A::operation() をオーバーライドできません> table>


2. PHP での多重継承の実装 次の例では PHP で致命的なエラーが発生します。

 class A{    public  function operation(){        echo 'a';    }}class C{    public function oper(){        echo 'c';    }} class B extends A{   public  function operation(){        echo 'a';    }} class B extends C{   public function operati(){      echo 'd';   }}$a=new B();$a->operation();

( ! ) 致命的なエラー: D:wampwwwexambleindex19.php 行 12

( ! ) Fatal error: Cannot override final method A::operation() in D:wampwwwexambleindex19.php on line 12
( ! ) Fatal error: Cannot redeclare class B in D:wampwwwexambleindex19.php on line 24
( ! )
致命的なエラー: D でクラス B を再宣言できません:wampwwwexambleindex19.php 行
24


この形式の多重継承は許可されていません。


複数の継承を実装する必要がある場合は、インターフェイスを介してのみ実装できます。

 interface Displayable{   public function display(); }  interface B{   public function show(); }  class A implements Displayable,B{   public function display(){     echo 'a';   }   public function show(){     echo 'b';   } }  $ab=new A(); $ab->display(); $ab->show();



インターフェイスのメソッドはすべてパブリックであり、メソッド本体をオーバーライドするサブクラスがないことに注意してください。インターフェイスとインターフェイスのメソッドはすべてサブクラスでオーバーライドする必要があります。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。