国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP類的封裝與繼承詳解

PHP類的封裝與繼承詳解

2020-11-23 15:05PHP教程網 PHP教程

類是面向對象中的重要概念,而封裝和繼承是面向對象的重要特點。這篇文章我們就重點討論一下封裝、繼承這兩個特點,給出一些列子,供大家學習參考。

封裝

       把成員方法和成員屬性封裝到中,隱藏屬性和方法實現的細節,通過public、protected、private等限定類成員的訪問權限,數據被保護在內部,只通過被授權的成員方法才可以操作,盡可能的對成員進行封裝。

public:方法或者屬性在任何作用域下都可以訪問到,而且是默認的,如果沒有為一個屬性或方法指定訪問修飾符,它將是public。
protected:本類和子類可以訪問,外部對象不可以調用。
private:只能在本類訪問,子類與外部對象都不可能調用。經過private標記的方法或者屬性可以在繼承類中重新定義,每一個類只能看到它自己定義的私有方法。

       這三個修飾符從作用范圍上來講應該像這樣從大到小排序:public→protected→private之所以說是在作用范圍上,是因為類把一些屬性和方法進行了封裝,這個封裝就決定了數據的“可見性”,這樣我們在類的外面不能夠隨意修改所定義的屬性和方法而只能夠進行調用,這就是封裝的好處,同時也提高了安全性。
我們給出代碼示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
class myClass{
 public $public="Public";    //public屬性
 protected $protected="Protected"; //protected屬性
 private $private="Private";   //private 屬性
 function say_Hello() {    //public屬性
 //只是舉例說明,自行添加內容
 }
 
$obj=new myClass();
echo $obj->public;
//echo $obj->protected;
//echo $obj->private;

通過運行以上示例我們得到一個“Public”,但當你把//echo $obj->private;的注釋去掉時,你會得到一下如下的錯誤:

Fatal error: Cannot access protected property myClass::$protected in E:apachehtdocsexamplefile.php on line 13。

可以看到我們不能隨意去訪問類的屬性定義,我們在“外面”是不知道這個類中到底有那些成員,因為這些成員對于其他的類可能是不可的。當然如果我們一定要訪問或者修改定義為“私有”的屬性時,也可以使用PHP所提供的系統方法:_get()和_set()。 

繼承

       可以使一個類繼承并擁有另一個已經存在類的成員屬性和方法,被繼承的類稱為父類或基類,繼承類為子類。通過extends關鍵字實現繼承關系。通俗來說,要有繼承就得有一個“根源”,這“根源”你可能想像你以后生了兒子或者女兒,他們會從你這里得到一些“東西(屬性和方法)”,這樣你的“后代”就是持有你(根源)所有的一些特征了。

產生“根源”類(父類或者基類)
語法:class father{
}

產生“后代”(子類)
語法:class son extends father{
}

PHP extends類繼承示例代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class father{
 protected $name;
 function __construct($name){  //構造函數
  $this->name=$name;
 }
 
 function work(){
  echo "{$this->name}我在工作;
 }
 function __destruct(){}  //析構函數
}
 
class son extends father{  //繼承父類
 function play(){
  echo "{$this->name}我在玩游戲;
 
}
 
 $my_father=new father(“爸爸”);  //創建父類對象
 $my_father->work();
 
 $my_son=new son(“兒子”);
 $my_son->work();
 $my_son->play();

解析:在父類father里,我們定義了一般的屬性和方法,然后定義子類。你可能發現在子類里內是沒有構造函數和析構函數的,因為子類是繼承了父類的所有方法,所以可以調用$my_son->work(); 這就是PHP類的繼承了。另外要注意:PHP不能多層繼承,如:class A extends B extends C,這樣的繼承在PHP中是無效的,PHP里只有單繼承,不能多繼承,需要其他辦法變相“實現”多繼承。

以上就是關于PHP類的封裝與繼承學習內容,希望對大家的學習有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品视频在线播放 | 亚洲男人的天堂网站 | 在线欧美视频 | 欧美一区二区三区的 | 亚洲国产中文字幕 | 一级毛片免费播放 | 一区二区日本 | 日韩精品一区二区在线观看视频 | 欧美第一网站 | 97视频免费在线观看 | 精品国产乱码久久久久久丨区2区 | av软件在线 | 成人一区二区在线 | 天天摸天天操 | 欧美日韩在线观看视频 | 亚洲精品乱码久久久久久花季 | 久久久精品国产99久久精品芒果 | 91社影院在线观看 | 综合久久99 | 成人羞羞视频免费 | 久久在线看 | 欧美在线国产 | 一级毛片在线播放 | 亚洲精品久久久久久下一站 | 国产精品一二区 | 国产一区二区三区视频在线观看 | 日韩欧美中字 | 国产中文字幕在线 | 99国产精品99久久久久久 | 日韩资源| 亚洲综合一区二区 | 一区二区精品在线视频 | 成人网页在线 | 国产在线精品一区二区 | 亚洲国内精品 | 性色av香蕉一区二区 | 欧美日韩一区二区三区在线观看 | 国产精品日本一区二区不卡视频 | 国产一区二区三区久久久 | 久久久久久久成人 | 日韩精品无码一区二区三区 |