日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
php基礎(chǔ)關(guān)于繼承的使用方法

繼承屬于面向?qū)ο蟮娜髾C(jī)制中的一種。在C++,JAVA,PHP中都存在,下面為大家介紹的是PHP中的使用方法。

為懷仁等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及懷仁網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站建設(shè)、做網(wǎng)站、懷仁網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

通常需要這樣一些類,這些類與其它現(xiàn)有的類擁有相同變量和函數(shù)。實(shí)際上,定義一個(gè)通用類用于所有的項(xiàng)目,并且不斷豐富這個(gè)類以適應(yīng)每個(gè)具體項(xiàng)目將是一個(gè)不 錯(cuò)的練習(xí)。為了使這一點(diǎn)變得更加容易,類可以從其它的類中擴(kuò)展出來(lái)。擴(kuò)展或派生出來(lái)的類擁有其基類(這稱為“繼承”,只不過(guò)沒(méi)人死)的所有變量和函數(shù),并包含所有派生類中定義的部分。

類中的元素不可能減少,就是說(shuō),不可以注銷任何存在的函數(shù)或者變量。一個(gè)擴(kuò)充類總是依賴一個(gè)單獨(dú)的基類,也就是說(shuō),不支持多 繼承。使用關(guān)鍵字“extends”來(lái)擴(kuò)展一個(gè)類。

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

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

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

這個(gè)也可以叫做“父-子”關(guān)系。創(chuàng)建一個(gè)類,父類,并使用 extends 來(lái)創(chuàng)建一個(gè)基于父類的新類:子類。甚至可以使用這個(gè)新的子類來(lái)創(chuàng)建另外一個(gè)基于這個(gè)子類的類。

Note:

類只有在定義后才可以使用!如果需要類 Named_Cart 繼承類 Cart,必須首先定義 Cart 類。如果需要?jiǎng)?chuàng)建另一個(gè)基于 Named_Cart 類的 Yellow_named_cart 類,必須首先定義 Named_Cart 類。簡(jiǎn)捷的說(shuō):類定義的順序是非常重要的。

 
 
 
  1. class Person{
  2. protected $name;//protected保護(hù)的權(quán)限,在子類可以訪問(wèn),外部不能訪問(wèn)
  3. protected $age;
  4. protected $sex;
  5. function __construct($name,$age,$sex){
  6. $this->name=$name;//當(dāng)使用this時(shí),就算name沒(méi)有聲明,也會(huì)再次聲明一個(gè)
  7. $this->age=$age;
  8. $this->sex=$sex;
  9. echo "###############";
  10. }
  11. public function say(){
  12. echo "我的名字:{$this->name},我的年齡{$this->age}:,我的性別:{$this->sex}
    ";
  13. }
  14. protected function eat(){
  15. echo "wwwwwwwwwwwwwwwwwwwww
    ";
  16. }
  17. function run(){
  18. }
  19. protected $name;//protected保護(hù)的權(quán)限,在子類可以訪問(wèn),外部不能訪問(wèn)
  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();//調(diào)用父類的構(gòu)造方法
  28. $this->school=$school;
  29. }
  30. //重載say()方法,進(jìn)行擴(kuò)展
  31. protected function say(){//父類使用public,子類的權(quán)限不能低于父類,可以喝父類的權(quán)限相同
  32. //Person::say();//調(diào)用父類的say()方法
  33. parent::say();//調(diào)用父類say()方法,parent代表父類名,當(dāng)父類名變化時(shí)也能夠調(diào)用。
  34. echo "我所在的學(xué)校{$this->school}
    ";//www.3ppt.com
  35. }
  36. function study(){
  37. echo "{$this->name}在學(xué)習(xí)
    ";
  38. }
  39. }
  40. $s=new Student("zhangsan",23,"男");
  41. $s->say();
  42. $s->study();

繼承的優(yōu)點(diǎn):

1.面向?qū)ο蟮娜筇匦灾?/p>

2.開(kāi)放性、可擴(kuò)充性

3.增加代碼的重用性

4.提高了軟件的可維護(hù)性

5.繼承就是用子類去“擴(kuò)展”父類

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

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

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

只要你在設(shè)計(jì)兩個(gè)類時(shí),有可以共享的成員,就將可以共享的內(nèi)容單獨(dú)作為一個(gè)基類使用

一、類繼承的應(yīng)用

1.聲明一個(gè)子類,使用extends關(guān)鍵字去繼承(擴(kuò)展)一個(gè)父類

2.子類可以從父類中繼承所有的內(nèi)容,包括成員屬性方法,構(gòu)造方法......,在子類中都可以使用

二、訪問(wèn)類型控制

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

封裝時(shí),既可以讓自己類的內(nèi)部可以訪問(wèn),也讓子類可以用,但類的外部不能使用,只要將權(quán)限設(shè)置為protected

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

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

2.子類的方法對(duì)父類方法的擴(kuò)展

3.在子類中調(diào)用父類中被覆蓋的方法

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

4.在子類中編寫(xiě)構(gòu)造方法,如果父類中也有構(gòu)造方法,一定要去調(diào)用一次父類中被覆蓋的構(gòu)造方法

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

希望對(duì)你有幫助。


網(wǎng)頁(yè)題目:php基礎(chǔ)關(guān)于繼承的使用方法
網(wǎng)站路徑:http://m.5511xx.com/article/djgiogo.html