ホームページ  >  記事  >  バックエンド開発  >  PHP における継承

PHP における継承

PHPz
PHPzオリジナル
2024-08-29 12:59:341229ブラウズ

継承は、新しく作成されたクラスで既存のクラスの機能を拡張する方法です。基本クラスの機能を拡張する以外に、新しく作成したクラスに機能を追加することもできます。 1 つのクラスを継承するとき、継承されたクラスを子クラス (サブクラス) と呼び、継承元の親クラスと呼ばれます。親クラスは基本クラスとも呼ばれます。これは、プログラミング コードの管理とコードの再利用性を向上させる方法です。継承の使用の背後にある考え方は、コードの管理を改善し、コードを再利用できるようにすることです。このトピックでは、PHP の継承について学習します。

広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

PHP における継承の種類

PHP は、JAVA などのさまざまなタイプの継承をサポートしています。以下の表は、PHP での継承タイプとサポート状況のリストを示しています。

Inheritance Type Support in PHP
Single Inheritance YES
Multilevel Inheritance YES
Hierarchical Inheritance YES
Multiple Inheritance NO

1.単一の継承

PHP は単一継承をサポートしています。単一継承は、1 つのクラスが 1 つのクラスのみを継承できるという PHP の概念です。このプロセスの間に 2 つのクラスが必要です。 1 つは基本 (親) クラスで、もう 1 つは子クラスです。例を挙げて同じことを理解しましょう。これは単純継承としてよく知られています。 PHP 言語におけるこのタイプの継承は、JAVA、C++ などと同じです。

PHP における継承

コード:

<?php
class MyAccess {
var $var = "This is first var";
protected $fist_name;
// simple class method
function returnVar() {
echo $this->fist_name;
}
function set_fist_name($set_this){
$this->fist_name = $set_this;
}
}
class child extends MyAccess {
function setVal($set_this){
$this->fist_name = $set_this;
}
function getVal(){
echo $this->fist_name;
}
}
$obj1 = new child();
$obj1->setVal("Jai Shre");
$obj1->getVal();
?>

MyAccess は親であり、子は子のクラスの名前です。

出力:

PHP における継承

2.多レベルの継承

PHP はマルチレベル継承をサポートしています。このタイプの継承では、2 つ以上のクラスが存在します。このタイプの継承では、親クラスが子クラスに継承され、その子クラスが子クラスに継承されます。 PHP 言語におけるこのタイプの継承は、C++ などと同じです。

PHP における継承

コード:

<?php
class ParentClass {
var $var = "This is first var";
public $fist_name;
// simple class method
function returnVar() {
echo $this->fist_name;
}
function set_fist_name($set_this){
$this->fist_name = $set_this;
}
}
class child_1 extends ParentClass {
function setVal($set_this){
$this->fist_name = $set_this;
}
function getVal(){
echo "Extended By Parent Class -". $this->fist_name;
}
}
class child_2 extends child_1 {
function setVal($set_this){
$this->fist_name = $set_this;
}
function getVal(){
echo "Extended By child 1  - ".$this->fist_name;
}
}
$obj1 = new child_1();
$obj1->setVal("This is first inherited class");
$obj1->getVal();
echo "<br/><br/>";
$obj2 = new child_2();
$obj2->setVal("This is second inherited class");
$obj2->getVal();
?>

出力:

PHP における継承

3.階層継承

PHP は階層継承をサポートしています。階層継承は、プログラムが 1 つの親クラスと複数の子クラスで構成される継承のタイプです。この例でも同じことを理解しましょう。 PHP 言語におけるこのタイプの継承は、JAVA、C++ などと同じです。

PHP における継承

コード:

<?php
class ParentClass {
var $var = "This is first var";
public $fist_name;
// simple class method
function returnVar() {
echo $this->fist_name;
}
function set_fist_name($set_this){
$this->fist_name = $set_this;
}
}
class child_1 extends ParentClass {
function setVal($set_this){
$this->fist_name = $set_this;
}
function getVal(){
echo $this->fist_name;
}
}
class child_2 extends ParentClass {
function setVal($set_this){
$this->fist_name = $set_this." - ".$set_this;;
}
function getVal(){
echo $this->fist_name;
}
}
$obj1 = new child_1();
$obj1->setVal("This is first child class");
$obj1->getVal();
echo "<br/><br/>";
$obj2 = new child_2();
$obj2->setVal("This is second child class");
$obj2->getVal();
?>

出力:

PHP における継承

ParentClass という名前の親クラスが 1 つと、それぞれ child_1 と child_2 という 2 つの子クラスがあります。与えられた継承シナリオは、階層継承と呼ばれます。

PHP における継承の重要性

継承には大きな利点があるため、継承の重要性はさらに高まります。

  • コードの再利用性は、継承で最も頻繁に使用されるものの 1 つです。基本クラスはプロセスの間にそのまま残ります。上記のすべての継承の例でわかるように、コードはあるクラスから別のクラスに再利用されています。同じものを何度も書き直す必要はありません。
  • 基本クラスは、クラス階層内の多数の派生クラスで使用できます。はい、これは、複数の継承を使用して親クラスで拡張できる継承のタイプです。
  • 拡張性は継承の利点の 1 つであり、ビジネス要件を満たすためにほとんど、またはまったく変更を加えることなく、基本クラスの機能を拡張できます。子クラスを持たずに親クラスだけを使用するとします。ただし、必要に応じて、後からビジネス ニーズを満たすために子クラスを追加できます。
  • オーバーライドは、この継承機能のもう 1 つの利点であり、基本クラス関数の定義を派生クラスに書き換えて、ビジネス要件に従って変更を加えることができます。
  • コードの量が少なくなります – 従来のコーディング方法と比較して、継承を進める際に使用するコードは比較的少なくなります。
  • 継承により、データ隠蔽機能も有効になりました。さまざまな PHP アクセス修飾子を使用して、親クラスの必要な部分のみを子クラスに公開できます。
  • MVC を完全にサポート – 継承の概念を使用して MVC を使用できます。

結論

通常のコードと比較していくつかの利点があるため、ビジネスを遂行するには継承を使用する必要があります。継承を扱う際には、データのセキュリティに注意する必要があります。 private や protected などのアクセス修飾子を使用して、データの隠蔽やデータ セキュリティに対処できます。 PHP は多重継承をサポートしていません。

以上がPHP における継承の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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