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;
}
}

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),