目次
Php面向对象 – 继承和重写
ホームページ php教程 php手册 Php面向对象 – 继承和重写

Php面向对象 – 继承和重写

Jun 13, 2016 am 09:26 AM
物体

Php面向对象 – 继承和重写

Php面向对象 – 继承和重写

继承:

php中,通过在类上,使用特殊的操作达到目的。

通过在定义类时,利用extends来指明当前类对象继承那个类的对象。

例子:

class C

{

public $p_c = “value c”;

}

class D extends C

{

public $p_d = “value d”;

}

$o = new D;

var_dump($o->p_c)

var_dump($o->p_d)

输出:string(7) “value c” string(7)“value d”

继承,指的是两个对象之间,那么哪有这两个对象?

Instanceof 操作符 (判断对象是否是某类的实例)

var_dump($o instanceof D);

输出:bool(true)

var_dump($o instanceof C);

输出:bool(true)

因此,一个对象即是当前类的实例,也是该类所继承类的实例。

Class D extends C

D类对象,继承自C类对象。

父类:被继承的类,C类

子类:需要继承的类,D类

基类:C类是D类的基类

扩展类:D类是C类的扩展类。

重要:

php是单继承。

继承的目的:

在于扩展,或者使用某类已经存在的操作和数据。

重写 override

继承时,如果发生成员冲突,php的处理方式,为重写。就是子类同名成员覆盖父类同名成员。不能看到父类的同名成员。

例子:

1.

class P

{

public $name = ‘P’;

}

class C extends P

{

public $name = “C”;

}

$o = new C;

echo $o->name;

2.

class P

{

public $name = ‘P’;

public function sayName()

{

echo‘parent::name’,$this->name;

}

}

class C extends P

{

public $name = “C”;

public function sayName()

{

echo‘self::name’,$this->name;

}

}

$o = new C;

$o->sayName();

输出:self::name C

构造方法重写:

例子:

class P

{

public__construct()

{

echo“parent::construct”;

}

}

class D extends P

{

public__construct()

{

echo“self::construct”;

}

}

$o =new D;

输出:self::construct

如果需要,强制执行被重写的父类方法,可以显示的使用父类来调用相应的父类方法即可:

例子:

class P

{

public__construct()

{

echo“parent::construct”;

}

}

class D extends P

{

public__construct()

{

P::__construct();

echo“self::construct”;

}

}

$o =new D;

输出:parent::construct self::construct

可以使用一个关键字,在类内,代替当前的父类

parent关键字

例子:

class P

{

public__construct()

{

echo“parent::construct”;

}

}

class D extends P

{

public__construct()

{

parent::__construct();

echo“self::construct”;

}

}

$o =new D;

如果说父类的构造需要相应的参数,则需要在调用时,将父类构造方法需要的参数传递到方法内。

例子:

class Goods

{

public $goods_name ;

public $goods_price;

public function __construct($name,$price)

{

$this->goods_name= $name;

$this->goods_price= $price;

}

}

class GoodsBook extends Goods

{

public $pages;

public function __construct($name,$price,$pages)

{

parent::__construct($name,$price);

$this->pages= $pages;

}

}

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP の json_encode() 関数を使用して配列またはオブジェクトを JSON 文字列に変換する PHP の json_encode() 関数を使用して配列またはオブジェクトを JSON 文字列に変換する Nov 03, 2023 pm 03:30 PM

JSON (JavaScriptObjectNotation) は、Web アプリケーション間のデータ交換の一般的な形式となっている軽量のデータ交換形式です。 PHP の json_encode() 関数は、配列またはオブジェクトを JSON 文字列に変換できます。この記事では、PHPのjson_encode()関数の構文、パラメータ、戻り値、具体的な例などの使い方を紹介します。構文 json_encode() 関数の構文は次のとおりです。

Python の __contains__() 関数を使用してオブジェクトの包含操作を定義する Python の __contains__() 関数を使用してオブジェクトの包含操作を定義する Aug 22, 2023 pm 04:23 PM

Python の __contains__() 関数を使用して、オブジェクトの包含操作を定義します。Python は、さまざまな種類のデータを処理するための多くの強力な機能を提供する、簡潔で強力なプログラミング言語です。その 1 つは、__contains__() 関数を定義してオブジェクトの包含操作を実装することです。この記事では、__contains__() 関数を使用してオブジェクトの包含操作を定義する方法とサンプル コードを紹介します。 __contains__() 関数は Pytho です

MySQLクエリ結果の配列をオブジェクトに変換するにはどうすればよいですか? MySQLクエリ結果の配列をオブジェクトに変換するにはどうすればよいですか? Apr 29, 2024 pm 01:09 PM

MySQL クエリ結果の配列をオブジェクトに変換する方法は次のとおりです。 空のオブジェクト配列を作成します。結果の配列をループし、行ごとに新しいオブジェクトを作成します。 foreach ループを使用して、各行のキーと値のペアを新しいオブジェクトの対応するプロパティに割り当てます。新しいオブジェクトをオブジェクト配列に追加します。データベース接続を閉じます。

ソースコードの探索: Python ではオブジェクトはどのように呼び出されますか? ソースコードの探索: Python ではオブジェクトはどのように呼び出されますか? May 11, 2023 am 11:46 AM

Wedge オブジェクトは主に 2 つの方法で作成されることがわかっています。1 つは Python/CAPI を使用する方法、もう 1 つは型オブジェクトを呼び出すことによる方法です。組み込み型のインスタンス オブジェクトについては、両方のメソッドがサポートされています。たとえば、リストは [] または list() を通じて作成できます。前者は Python/CAPI で、後者は呼び出し型オブジェクトです。ただし、カスタム クラスのオブジェクトの場合は、型オブジェクトを呼び出すことによってのみ作成できます。オブジェクトを呼び出すことができる場合、そのオブジェクトは呼び出し可能ですが、それ以外の場合は呼び出し可能ではありません。オブジェクトが呼び出し可能かどうかは、対応する型オブジェクトにメソッドが定義されているかどうかによって決まります。のように

PHP 関数はどのようにオブジェクトを返すのでしょうか? PHP 関数はどのようにオブジェクトを返すのでしょうか? Apr 10, 2024 pm 03:18 PM

PHP 関数は、return ステートメントに続いてオブジェクト インスタンスを使用してオブジェクトを返すことにより、データをカスタム構造にカプセル化できます。構文: functionget_object():object{}。これにより、カスタム プロパティとメソッドを使用してオブジェクトを作成し、オブジェクトの形式でデータを処理できるようになります。

Python の __le__() 関数を使用して、2 つのオブジェクトの小なり等しい比較を定義します。 Python の __le__() 関数を使用して、2 つのオブジェクトの小なり等しい比較を定義します。 Aug 21, 2023 pm 09:29 PM

タイトル: Python の __le__() 関数を使用して 2 つのオブジェクト以下の比較を定義する Python では、特別なメソッドを使用してオブジェクト間の比較演算を定義できます。その 1 つは __le__() 関数で、以下の比較を定義するために使用されます。 __le__() 関数は Python のマジック メソッドであり、「以下」演算を実装するために使用される特別な関数です。小なり等しい演算子 (<=) を使用して 2 つのオブジェクトを比較すると、Python

PHP における配列とオブジェクトの違いは何ですか? PHP における配列とオブジェクトの違いは何ですか? Apr 29, 2024 pm 02:39 PM

PHP では、配列は順序付けられたシーケンスであり、要素はインデックスによってアクセスされます。オブジェクトは、new キーワードによって作成されたプロパティとメソッドを持つエンティティです。配列へのアクセスはインデックス経由で、オブジェクトへのアクセスはプロパティ/メソッド経由で行われます。配列値が渡され、オブジェクト参照が渡されます。

Javascriptオブジェクトの5つのループトラバースメソッドを詳しく解説 Javascriptオブジェクトの5つのループトラバースメソッドを詳しく解説 Aug 04, 2022 pm 05:28 PM

Javascript オブジェクトをループするにはどうすればよいですか?次の記事では、5 つの JS オブジェクト走査方法を詳しく紹介し、これら 5 つの方法を簡単に比較します。

See all articles