日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php类和对象-作用,php 类和对象

發布時間:2025/3/15 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php类和对象-作用,php 类和对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象,是當今編程的主流,對于研發人員,可能對面向對象,多多少少的有一些認識,但是有些不常用的或許不是特別清楚。有時也是很有用的。下面就介紹幾點知識。

一、final 關鍵字的一些知識:

1、final 關鍵字作為方法是可以被子類繼承的。如下面:

class A{

final function operation(){

echo 'a';

}

}

class B extends A{

}

$a=new B();

$a->operation();

result :a

2、final 關鍵字作為類是不可以繼承的,如下:

final class A{

final function operation(){

echo 'a';

}

}

class B extends A{

}

$a=new B();

$a->operation();

會有如下錯誤:

( ! )?Fatal error: Class B may not inherit from final class (A) in D:\wamp\www\examble\index19.php on line?9

3、final 關鍵字作為的方法不能被子類覆蓋,也就是說子類不能有相同的方法,如下

class A{

final function operation(){

echo 'a';

}

}

class B extends A{

function operation(){

echo 'a';

}

}

$a=new B();

$a->operation();

會有如下錯誤:

( ! )?Fatal error: Cannot override final method A::operation() in D:\wamp\www\examble\index19.php on line?12

二、php ?多重繼承的實現,以下的例子在php 中將會有個致命的錯誤。

class A{

public function operation(){

echo 'a';

}

}

class C{

public function oper(){

echo 'c';

}

}

class B extends A{

public function operation(){

echo 'a';

}

}

class B extends C{

public function operati(){

echo 'd';

}

}

$a=new B();

$a->operation();

( ! )?Fatal error: Cannot redeclare class B in D:\wamp\www\examble\index19.php on line?24

這種形式的多種繼承不被允許的。

如果非要實現多種繼承,那么只能通過接口的方式實現呢。

interface Displayable{

public function display();

}

interface B{

public function show();

}

class A implements Displayable,B{

public function display(){

echo 'a';

}

public function show(){

echo 'b';

}

}

$ab=new A();

$ab->display();

$ab->show();

注意接口的方法都是public,接口的方法只有方法,沒有方法體,子類重寫接口的方法,接口的方法在子類必須都被重寫。

三、 延遲靜態綁定

php 5.3 引進了延遲靜態綁定的概念是,該特性是允許在一個靜態繼承的上下文中對一個被調用類的引用。也就是說父類可以使用子類重載的靜態方法。如下所示:

class A{

public static function who(){

echo __CLASS__;

}

public static function test(){

static::who();

}

}

class B extends A{

public static function who(){

echo __CLASS__;

}

}

A::test();輸入B

php 手冊有更多的介紹。

四,抽象類與接口的區別

抽象方法與接口有相同之處,都是只有方法名,沒有方法體。

抽象方法的類必須是抽象類。

抽象方法與接口的方法,在子類都必須去實現。

抽象方法不支持多繼承,接口可以實現多重繼承。

抽象類不能繼承抽象類。

接口能繼承接口如下。

interface a{

public function e();

}

interface b extends a{

public function b();

}

class c implements b{

public function b(){

echo 'fddfdf';

}

public function e(){

echo 'fddf';

}

}

$c=new c();

$c->b();

總結

以上是生活随笔為你收集整理的php类和对象-作用,php 类和对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。