成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

php基礎 關于繼承的使用方法

開發 后端
本文討論的是三大機制之一,PHP中繼承的一些使用方法,使用繼承,對于程序可是有很多幫助的。希望能夠幫助到你,一起來看。

繼承屬于面向對象的三大機制中的一種。在C++,JAVA,PHP中都存在,下面為大家介紹的是PHP中的使用方法。

通常需要這樣一些類,這些類與其它現有的類擁有相同變量和函數。實際上,定義一個通用類用于所有的項目,并且不斷豐富這個類以適應每個具體項目將是一個不 錯的練習。為了使這一點變得更加容易,類可以從其它的類中擴展出來。擴展或派生出來的類擁有其基類(這稱為“繼承”,只不過沒人死)的所有變量和函數,并包含所有派生類中定義的部分。

類中的元素不可能減少,就是說,不可以注銷任何存在的函數或者變量。一個擴充類總是依賴一個單獨的基類,也就是說,不支持多 繼承。使用關鍵字“extends”來擴展一個類。

 

  1. <?php  
  2. class test {  
  3. public function __construct() {   
  4. }  
  5. public function name() {   
  6. $this->xname('John');   
  7. }  
  8. private function showName($name) {   
  9. echo 'my name in test is '.$name;   
  10. }   
  11. }  
  12. class extendTest extends test {  
  13. public function __construct() {   
  14. parent::__construct();   
  15. }  
  16. private function showName($name) {   
  17. echo 'my name in extendTest is '.$name;   
  18. }   
  19. }  
  20. $test = new extendTest();   
  21. $test->name();   
  22. ?> 

上述示例定義了名為 Named_Cart 的類,該類擁有 Cart 類的所有變量和函數,加上附加的變量 $owner 和一個附加函數 set_owner()。現在,以正常的方式創建了一個有名字的購物車,并且可以設置并取得該購物車的主人。而正常的購物車類的函數依舊可以在有名字的購 物車類中使用:

  1. <?php  
  2. $ncart = new Named_Cart; // 新建一個有名字的購物車  
  3. $ncart->set_owner("kris"); // 給該購物車命名  
  4. print $ncart->owner; // 輸出該購物車主人的名字  
  5. $ncart->add_item("10", 1); // (從購物車類中繼承來的功能)  
  6. ?>  

這個也可以叫做“父-子”關系。創建一個類,父類,并使用 extends 來創建一個基于父類的新類:子類。甚至可以使用這個新的子類來創建另外一個基于這個子類的類。

Note:

類只有在定義后才可以使用!如果需要類 Named_Cart 繼承類 Cart,必須首先定義 Cart 類。如果需要創建另一個基于 Named_Cart 類的 Yellow_named_cart 類,必須首先定義 Named_Cart 類。簡捷的說:類定義的順序是非常重要的。

 

  1. class Person{  
  2. protected $name;//protected保護的權限,在子類可以訪問,外部不能訪問  
  3. protected $age;  
  4. protected $sex;  
  5. function __construct($name,$age,$sex){  
  6. $this->name=$name;//當使用this時,就算name沒有聲明,也會再次聲明一個  
  7. $this->age=$age;  
  8. $this->sex=$sex;  
  9. echo "###############";  
  10. }  
  11. public function say(){  
  12. echo "我的名字:{$this->name},我的年齡{$this->age}:,我的性別:{$this->sex}<br/>";  
  13. }  
  14. protected function eat(){  
  15. echo "wwwwwwwwwwwwwwwwwwwww<br>";  
  16. }  
  17. function run(){  
  18. }  
  19. protected $name;//protected保護的權限,在子類可以訪問,外部不能訪問  
  20. protected $age;  
  21. protected $sex;  
  22. }  
  23. //繼承  
  24. class Student extends Person{  
  25. var $school;  
  26. function __construct($name,$age,$sex,$school){  
  27. parent::__construct();//調用父類的構造方法  
  28. $this->school=$school;  
  29. }  
  30. //重載say()方法,進行擴展  
  31. protected function say(){//父類使用public,子類的權限不能低于父類,可以喝父類的權限相同  
  32. //Person::say();//調用父類的say()方法  
  33. parent::say();//調用父類say()方法,parent代表父類名,當父類名變化時也能夠調用。  
  34. echo "我所在的學校{$this->school}<br/>";//www.3ppt.com  
  35. }  
  36. function study(){  
  37. echo "{$this->name}在學習<br/>";  
  38. }  
  39. }  
  40. $s=new Student("zhangsan",23,"男");  
  41. $s->say();  
  42. $s->study(); 

 

繼承的優點:

1.面向對象的三大特性之一

2.開放性、可擴充性

3.增加代碼的重用性

4.提高了軟件的可維護性

5.繼承就是用子類去“擴展”父類

C++ 屬于多繼承,同一個類可以有多個父類

PHP和JAVA屬于單繼承,同一個類只能有一個父類

不管是多繼承或者單繼承,都可以有多個子類

只要你在設計兩個類時,有可以共享的成員,就將可以共享的內容單獨作為一個基類使用

一、類繼承的應用

1.聲明一個子類,使用extends關鍵字去繼承(擴展)一個父類

2.子類可以從父類中繼承所有的內容,包括成員屬性方法,構造方法......,在子類中都可以使用

二、訪問類型控制

雖然子類可以從父類中繼承所有內容,但私有的private成員,只能在本類中使用,子類中也不能使用

封裝時,既可以讓自己類的內部可以訪問,也讓子類可以用,但類的外部不能使用,只要將權限設置為protected

 

三、子類中重載父類的方法

1.子類可以聲明可以聲明和父類相同的方法名,即子類覆蓋了父類同名的方法

2.子類的方法對父類方法的擴展

3.在子類中調用父類中被覆蓋的方法
 

使用 父類名::方法名() parent::方法名()

4.在子類中編寫構造方法,如果父類中也有構造方法,一定要去調用一次父類中被覆蓋的構造方法

注意:子類中重載的方法,不能低于父類中訪問權限(子類可以放大權限,但不能縮小權限)

希望對你有幫助。

【編輯推薦】

  1. Javascript面向對象編程(二)繼承
  2. Javascript繼承機制的設計思想
  3. 深入剖析CSS層疊與繼承的使用
  4. Java SynDemo對象如何解決繼承問題
  5. Python繼承體現面向對象特征
責任編輯:于鐵 來源: 博客園
相關推薦

2009-11-16 16:54:00

PHP構造函數

2009-12-02 16:04:44

PHP fsockop

2009-12-02 18:51:12

PHP分頁類

2009-12-07 16:52:59

PHP函數getima

2009-11-30 17:43:54

PHP split()

2009-11-17 17:38:37

PHP Session

2009-12-02 15:02:09

PHP simplex

2009-11-24 15:50:09

PHP上傳類uploa

2011-07-12 17:11:13

PHPSHELL

2009-11-24 09:26:31

pbr策略路由

2009-11-24 19:25:32

PHP關聯數組

2009-11-26 19:05:04

PHP函數explod

2009-11-26 15:23:24

PHP函數ereg()

2009-12-01 17:00:49

PHP變量

2009-12-02 14:50:25

PHP接口類inter

2009-11-25 10:02:27

PHP會話Sessio

2011-08-31 10:23:40

MTK平臺列表控件

2009-11-18 13:38:27

2009-11-17 15:00:19

PHP遍歷數組

2019-11-07 23:48:12

shell腳本getopts
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区三区久久久 | 午夜欧美 | 范冰冰一级做a爰片久久毛片 | 美女人人操 | 欧美一区二区三区四区在线 | 欧美一级淫片免费视频黄 | 激情欧美一区二区三区中文字幕 | 超碰日本| 91在线中文字幕 | 久久国产亚洲 | 欧美视频1区 | 欧美一区二区在线观看视频 | www国产成人免费观看视频,深夜成人网 | 天天干天天插天天 | 午夜私人影院在线观看 | 日本不卡高字幕在线2019 | 激情久久av一区av二区av三区 | 天天躁天天操 | 中文字幕高清一区 | 精品久久久久久红码专区 | 一区在线播放 | 国产精品影视在线观看 | 亚洲电影一区二区三区 | 天天草草草 | 老头搡老女人毛片视频在线看 | 成人精品国产免费网站 | 亚洲成人高清 | 影音先锋久久 | 中文字幕一区二区三区在线观看 | 日本在线黄色 | 亚洲精品女人久久久 | 天天综合国产 | 久久久www成人免费无遮挡大片 | 欧美在线小视频 | 超碰97人人人人人蜜桃 | 亚洲精品九九 | 精品视频在线观看 | 成人日韩精品 | 在线一区视频 | 亚洲国产精品久久久久久 | 黑人久久久 |