ホームページ  >  記事  >  バックエンド開発  >  クラスの継承とphpでのインターフェースの実装の違いは何ですか

クラスの継承とphpでのインターフェースの実装の違いは何ですか

WBOY
WBOYオリジナル
2022-02-17 11:43:181662ブラウズ

PHP における継承されたクラスと実装されたインターフェイスの違い: 1. PHP の継承は単一継承に属し、統一性が保証されますが柔軟性が十分ではありませんが、インターフェイスの実装は単一継承を補足するものです; 2. インターフェイスの実装階層関係を破壊することなく、特定のクラスの機能を拡張します。

クラスの継承とphpでのインターフェースの実装の違いは何ですか

このチュートリアルの動作環境: Windows 10 システム、PHP バージョン 7.1、DELL G3 コンピューター

継承クラスと実装インターフェイスの違いin php

1. 継承とインターフェース実装の比較:

(1) PHP の継承は単一継承に属し、統一性は保証されますが、柔軟性が十分ではありません。インターフェイスの実装は単一継承の補足です。

(2) インターフェイスの実装は、クラスの階層関係を破壊することなく、特定のクラスの機能を拡張できます。

<?php
  class Monkey {
      public $age;
      public $name;
      public function climbing() {
          echo "猴子会爬树<br/>";
      }
  }
  interface iBirdable {
      public function fly();
  }
  interface iFishable {
      public function swimming();
  }
  class LittleMonkey extends Monkey implements iBirdable,iFishable {
      public function fly() {
          echo "猴子还会飞<br/>";
      }
      public function swimming() {
          echo "猴子也会游泳<br/>";
      }
  }
  $littleMonkey = new LittleMonkey();
  $littleMonkey -> climbing();
  $littleMonkey -> fly();
  $littleMonkey -> swimming();
?>

2. 最終キーワード:

1. クラスが (セキュリティの観点から) 他のクラスに継承されたくない場合は、final;

# で変更できます。 ##2 . メソッドがサブクラスによってオーバーライドされないようにしたい場合 (メソッドがサブクラス メソッドによってオーバーロードされたくない場合)、最終変更を使用することもできます。

<?php  
class A{  
    final public function getRate($salary){  
        return $salary*0.08;  
    }  
}  
class B extends A{  
    //不能去覆盖父类的getRate方法.  
    /*public function getRate($sal){ 
        return $sal*0.01; 
    }*/  
}  
        
$b=new B();  
echo $b->getRate(100)."<br/>";  
?>

3. Final ではメンバー変数 (プロパティ) を変更できません。

3. const:

1. 属性を変更したくない場合は、const を使用して定数にすることを検討できます (たとえば、pi は改ざんできません)。

2. 基本構文:

const constant name = assignInitial value;

初期値を割り当てないと、後で改ざんできなくなります。価値がある。

3. 修飾子は定数に書き込むことはできません。デフォルトでは public ですが、書き出すことはできません。

4. 定数名は通常、すべて大文字で付けられます。

5. 呼び出し構文:

クラス内で使用:

self::定数名またはクラス名::定数名;

外部使用クラスの:

インターフェイス名::定数;

推奨される学習: 「

PHP ビデオ チュートリアル

以上がクラスの継承とphpでのインターフェースの実装の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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