ホームページ バックエンド開発 PHPチュートリアル PHPオブジェクト指向継承例の詳細説明

PHPオブジェクト指向継承例の詳細説明

Jun 30, 2017 am 09:16 AM
php 物体

オブジェクト指向の3つの重要な機能の1つである継承は、オブジェクト指向の分野で非常に重要な役割を果たしています。継承をサポートしていないオブジェクト指向言語は聞いたことがないようです。

クラスの継承
継承は、オブジェクト指向の 3 つの重要な機能の 1 つとして、オブジェクト指向の分野で非常に重要な役割を果たします
これを行うオブジェクト指向言語については聞いたことがないようです。継承はサポートしていません。継承は、PHP5 オブジェクト指向プログラミングの重要な機能の 1 つであり、以前に定義された 1 つ以上のクラスからデータと関数を継承し、新しいデータと関数を再定義または追加して、新しい派生クラスを作成することを指します。クラスの階層または階層。簡単に言うと、継承とは、子クラスが親クラスのデータ構造やメソッドを自動的に共有する仕組みです。これはクラス間の関係です。クラスを定義して実装するときは、既存のクラスに基づいて実行したり、既存のクラスで定義されたコンテンツを独自のコンテンツとして使用したり、新しいコンテンツを追加したりできます。たとえば、すでにクラス「person」があり、このクラスには
2 つのメンバー属性「名前と年齢」と 2 つの
メンバー メソッド
のプログラムが必要です。 , 学生も人間なので、学生も「名前と年齢」というメンバー属性と「話し方や歩き方」というメンバーメソッドを持っているので、このクラスを継承させれば
になります。学生クラスは人間のすべての属性を継承します。学生クラスには学校の属性と学習メソッドも含まれるため、これらのメンバー属性
とメソッドを再宣言する必要はありません。には、人間から継承された
属性とメソッドがあり、生徒固有の「学校属性」と「学習メソッド」に加えて、そのような生徒クラスも「継承」と呼ぶことができます。学生
クラスが人間を拡張したものであることがわかります。人間の元の 2 つの属性と 2 つのメソッドに基づいて、1 つの属性と 1 つのメソッドが追加されています。
拡張 新しい学生クラスが登場します。
継承メカニズムを通じて、既存の
データ型
を使用して新しいデータ型を定義できます。定義された新しいデータ型 には、新しく定義されたメンバーだけでなく、古いメンバーも含まれます。新しいクラスの派生に使用される既存のクラスを基本クラスと呼び、親クラスやスーパークラスとも呼ばれます。既存のクラスから派生した新しいクラスは派生クラスと呼ばれ、サブクラスとも呼ばれます。ソフトウェア開発では、クラスの継承により、作成されたソフトウェアがオープンでスケーラブルになります。これは、オブジェクトとクラスの作成の作業負荷を簡素化し、コードの再現性を向上させる効果的な方法です。 は継承を使用して、クラスの標準的な階層構造を提供します。クラスの継承関係により、公開機能を共有できるため、ソフトウェアの再利用性が向上します。
C++ 言語では、派生クラスは 1 つまたは複数の基本クラスから派生できます。 1 つの基本クラスから派生した継承は単一継承と呼ばれ、複数の基本クラスから派生した継承は多重継承と呼ばれます。
しかし、PHP と Java 言語には多重継承はなく、単一継承のみです。つまり、クラスは 1 つのクラスからのみデータを直接継承できます。これを単一継承と呼びます。
例:
以下は「Human」クラスの抽象化です コードスニペット

//定义一个“人”类作为父类 
class Person{ 
//下面是人的成员属性 
var $name; //人的名子 
var $sex; //人的性别 
var $age; //人的年龄 
//定义一个
构造方法
参数为属性姓名$name、性别$sex和年龄$age进行赋值 
function construct($name, $sex, $age){ 
$this->name=$name; 
$this->sex=$sex; 
$this->age=$age; 
} 
//这个人可以说话的方法, 说出自己的属性 
function say() { 
echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>"; 
} 
}
ログイン後にコピー

継承を使用しない場合は、以下のようになります: コードスニペット
//定义一个“人”类做为父类 
class Student{ 
//下面是人的成员属性 
var $name; //人的名子 
var $sex; //人的性别 
var $age; //人的年龄 
var $school; //学生所在学校的属性 
//定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值 
function construct($name=””, $sex=””, $age=””, $school=””){ 
$this->name=$name; 
$this->sex=$sex; 
$this->age=$age; 
$this->school=$school; 
} 
//这个人可以说话的方法, 说出自己的属性 
function say() { 
echo "我的名子叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>"; 
} 
//这个学生学习的方法 
function study() { 
echo "我的名子叫:".$this->name." 我正在”.$this->school.”学习<br>"; 
} 
} 
//定义一个子类“学生类“使用”extends”关键字来继承”人”类 
class Student extends Person{ 
var $school; //学生所在学校的属性 
//这个学生学习的方法 
function study() { 
echo "我的名子叫:".$this->name." 我正在”.$this->school.”学习<br>"; 
} 
}
ログイン後にコピー

定義を通して。上記の「Student」クラスの Student クラスは、「extends」キーワードを使用して Person クラスのすべてのメンバー属性とメンバー メソッドを継承し、所在地の学校のメンバー属性「school」と研究を拡張します。メソッド「study()」。サブクラス「Student」と、このクラスのインスタンスを使用して作成されたオブジェクトには、次のプロパティとメソッドがあります。
学生クラス「Student」のメンバー プロパティは次のとおりです。
年齢: 年齢
性別: 性別 ; School: school;
学生クラス「Student」のメンバーメソッドは次のとおりです:
Speakingメソッド:say();
Learningメソッド:study();
上記のクラスを使用することで、ワークロードが簡素化されます。継承により、コードの再現性が向上します。しかし、上記の例からは、「再利用性」やその他の継承の影響は特に明らかではありません。より広く考えると、たとえば、上記の学生には教師、エンジニア、医師、労働者などが含まれます。 、たくさんあります。各クラスが「人」に共通の属性とメソッドを定義すると、多くの作業が発生します。これらの属性とメソッドは「人」という人間から継承できます。

以上がPHPオブジェクト指向継承例の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles