PHPの親クラスをサブクラスに変換する方法

PHPz
リリース: 2023-04-21 10:29:54
オリジナル
1057 人が閲覧しました

オブジェクト指向プログラミングのプロセスにおいて、クラスの継承は非常に重要な概念です。継承によりコードの再利用が可能になり、プログラマーの時間とエネルギーが節約されます。ただし、既存の親クラスを使用しつつ、サブクラスの一意のメソッドや属性を追加または変更する必要がある状況もよくあります。このとき、「親クラスロータークラス」の必要性が急務となっています。この記事では、Php の親クラスをサブクラスに変換する方法を説明します。

Php 親クラス ローター クラスを使用する理由

プログラミングの過程で、特定のクラスがニーズに非常に適しているが、これらのクラスには必要なメソッドや属性が欠けていることがよくあります。元の親クラスを直接変更すると、変更されたクラスはまったく新しいクラスになります。したがって、必然的に新しいサブクラスを作成し、そのプロパティとメソッドのほとんどを既存の親クラスから継承する必要があります。この場合、「親クラスから子クラスへ」という要件が現れます。

Php 親クラスのローター クラスの実装方法

Php 親クラスのローター クラスの実装では、extends というキーワードを使用できます。 Php の extends キーワードは継承を実装するために使用されます。その使用法は次のとおりです:

class ChildClass extends ParentClass {
  //子类的属性和方法
}
ログイン後にコピー

extends キーワードを通じて、親クラスのほとんどのメソッドとプロパティをサブクラスに継承できます。 time 必要な新しいメソッドとプロパティを ChildClass に追加します。

実際には、このメソッドは「親クラスからサブクラスへ」の真の変換ではなく、継承関係を実装します。したがって、次の点に注意する必要があります。

  1. サブクラスには親クラスのコンストラクターが含まれている必要があります。
    extends によって実装された継承では、サブクラスには親クラスのコンストラクターが含まれている必要があります。 Php では、サブクラスは親クラスのコンストラクターを自動的に継承するため、サブクラスで同じコンストラクターを明示的に宣言する必要はありません。
  2. サブクラスは親クラスのコンストラクターを呼び出す必要があります
    親クラスのメンバーを確実に正常に初期化できるようにするために、サブクラスはコンストラクター内の対応する親クラスのコンストラクターを呼び出す必要があります。これは多くのライブラリでよくある問題です。

以下は、Php の親クラスをサブクラスに変換する方法を示す簡単な例です:

class MyBaseClass {
  private $myBaseVar;
  
  public function __construct(){
    echo "Construction of Base class\n";
    $this->myBaseVar = "Initial value";
  }
  
  public function getMyBaseVar() {
    return $this->myBaseVar;
  }
}

class MySubClass extends MyBaseClass {
  private $mySubVar;
  
  public function __construct(){
    echo "Construction of Sub class\n";
    parent::__construct();
    $this->mySubVar = "Another value";
  }
  
  public function getMySubVar() {
    return $this->mySubVar;
  }
}

$obj = new MySubClass();
echo $obj->getMyBaseVar() . "\n";
echo $obj->getMySubVar() . "\n";
ログイン後にコピー

この例では、最初に MyBaseClass Base クラスという名前のクラスを定義します。 myBaseVar という名前のプライベート メンバー変数。 myBaseVar 変数の値を取得するために、getMyBaseVar() メンバー関数を実装します。

次に、MyBaseClass を継承する MySubClass というクラスを定義します。 MyBaseClass のコンストラクター要件を満たすために、コンストラクター内でparent::__construct() を使用して、MyBaseClass 内のコンストラクターを明示的に呼び出します。同様に、mySubVar という名前のプライベート メンバー変数も追加し、getMySubVar() メンバー関数を実装しました。

最後に、$obj という名前の MySubClass サンプルを作成し、2 つのメンバー関数 getMyBaseVar() と getMySubVar() の効果をテストしました。出力は次のとおりです。

Construction of Sub class
Construction of Base class
Initial value
Another value
ログイン後にコピー

出力からわかるように、親クラスのコンストラクターは正常に呼び出され、サブクラスは親クラスの myBaseVar 変数のプロパティを取得しただけでなく、 mySubVar.Private プロパティという名前の変数を追加しました。

結論

既存のクラスを拡張する必要がある場合、親クラスを継承するサブクラスを作成できます。継承を通じて、サブクラスは親クラスのプロパティとメソッドのほとんどを取得でき、新しいプロパティとメソッドをサブクラスに追加することもできます。コンストラクターでparent::__construct()を使用すると、親クラスのコンストラクターが正常に呼び出され、親クラスのメンバーが正常に初期化されることが保証されます。以上がPhpの親クラス、ロータークラスの実装方法でしたので、Phpプログラミング学習者の参考になれば幸いです。

以上がPHPの親クラスをサブクラスに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!