摘要:一繼承與擴展子類使用繼承父類,子類可以將父類所有內(nèi)容繼承,如下多層繼承無法繼承給子類,如下只是子類引用繼承了父類的保護權(quán)限,只能自己和子類使用,外部無法讀取,如下默認公開權(quán)限,所有位置都可用,不再重復(fù)舉例,各權(quán)限如下圖二繼
一、繼承與擴展
1.子類使用extends繼承父類,子類可以將父類所有內(nèi)容繼承,如下:
//多層繼承 class Person { var $name; var $age; var $sex; function __construct(){ } function say(){ } function eat(){ echo "1111"; } function run(){ } }; class Student extends Person { var $school; function __construct(){ } function study(){ } }; class Teacher extends Student { var $gz; function teach(){ } }; $stu=new Student; $stu->eat(); /1111
2.private無法繼承給子類,如下:
class Person { private $name="liu"; var $age; var $sex; function __construct(){ } function say(){ echo $this->name; } function eat(){ echo "1111"; } function run(){ } }; class Student extends Person { var $school; function __construct(){ } function study(){ } }; class Teacher extends Student { var $dw; function teach(){ echo $this->name; } }; $teacher=new Teacher; $teacher->say();//liu 只是子類引用繼承了父類的say() $teacher->teach();//error
3.protected保護權(quán)限,只能自己和子類使用,外部無法讀取,如下:
class Person { private $name="liu"; protected $age=10; var $sex; function __construct(){ } function say(){ echo $this->age; } function eat(){ echo "1111"; } function run(){ } }; class Student extends Person { var $school; function __construct(){ } function study(){ } }; class Teacher extends Student { var $dw; function teach(){ echo $this->age; } }; $teacher=new Teacher; $teacher->say();//10 $teacher->teach();//10
4.public(默認)公開權(quán)限,所有位置都可用,不再重復(fù)舉例,各權(quán)限如下圖:
二、繼承中的重載/覆蓋
1.強類型語言中重載:方法名相同,參數(shù)或參數(shù)個數(shù)不同 2.弱類型語言理解為覆蓋:同一類中同名方法后覆蓋前 3.弱類型中的重載:子類里可以寫與父類同名的方法,即方法的擴展(接口、多態(tài)) 4.調(diào)用類的方法Person::say(); 5.調(diào)用父類(被覆蓋)的方法(默認關(guān)鍵字)parent::say(); 6.__construct()也可以覆蓋,但最開始必須調(diào)用父類構(gòu)造函數(shù),如下:
function __construct($name,$age,$sex,$school){ //先調(diào)用父類構(gòu)造方法,否則父類初始化后,子類不變 parent::__construct($name,$age,$sex); $this->school=$school; }
7.權(quán)限:子類權(quán)限只能>=父類權(quán)限,即public > protected > private
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/25574.html
摘要:利用計算機來對事物進行抽象并使用便是面向?qū)ο缶幊獭1焕^承的類稱為基類,繼承基類的新類稱為導(dǎo)出類。所以可以將導(dǎo)出類的實例對象賦給基類,作為一個基類對象使用。所以在一個基類對象上調(diào)用導(dǎo)出類的新功能者并沒有什么意義,也不符合現(xiàn)實。 從崛起的智人到被蘋果砸中的牛頓再到現(xiàn)在的你,一直在思考這是個怎么樣的世界? 一、世上本沒有蘋果 看到一張?zhí)O果的圖片,腦海里自然浮現(xiàn)圖片上的是一個蘋果,為什么會稱蘋...
摘要:摘要本文章關(guān)注點是理解面向?qū)ο蟾拍睿瑥某橄蟮慕嵌壬先ダ斫鈱ο螅攸c包括理解對象的作用,以及理解面向?qū)ο蟮娜筇卣鞣庋b,繼承,多態(tài)。特性多態(tài)不同對象以自己的方式響應(yīng)相同的消息的能力叫做多態(tài)。 摘要:本文章關(guān)注點是理解面向?qū)ο蟾拍睿瑥某橄蟮慕嵌壬先ダ斫鈱ο螅攸c包括理解對象的作用,以及理解面向?qū)ο蟮娜筇卣鳎ǚ庋b,繼承,多態(tài))。本文重點關(guān)注的是理解概念。 在理解面向?qū)ο笾埃紫然卮饚讉€問...
摘要:是完全的面向?qū)ο笳Z言,它們通過類的形式組織函數(shù)和變量,使之不能脫離對象存在。而在基于原型的面向?qū)ο蠓绞街校瑢ο髣t是依靠構(gòu)造器利用原型構(gòu)造出來的。 JavaScript 函數(shù)式腳本語言特性以及其看似隨意的編寫風(fēng)格,導(dǎo)致長期以來人們對這一門語言的誤解,即認為 JavaScript 不是一門面向?qū)ο蟮恼Z言,或者只是部分具備一些面向?qū)ο蟮奶卣鳌1疚膶⒒貧w面向?qū)ο蟊疽猓瑥膶φZ言感悟的角度闡述為什...
摘要:眾多面向?qū)ο蟮木幊趟枷腚m不盡一致,但是無論哪種面向?qū)ο缶幊陶Z言都具有以下的共通功能。原型編程以類為中心的傳統(tǒng)面向?qū)ο缶幊蹋且灶悶榛A(chǔ)生成新對象。而原型模式的面向?qū)ο缶幊陶Z言沒有類這樣一個概念。 什么是面向?qū)ο螅窟@個問題往往會問到剛畢業(yè)的新手or實習(xí)生上,也是往往作為一個技術(shù)面試的開頭題。在這里我們不去談如何答(fu)好(yan)問(guo)題(qu),僅談?wù)勎宜斫獾拿嫦驅(qū)ο蟆?從歷...
摘要:目錄導(dǎo)語理解對象和面向?qū)ο蟮某绦蛟O(shè)計創(chuàng)建對象的方式的繼承機制原型對象原型鏈與原型對象相關(guān)的方法小結(jié)導(dǎo)語前面的系列文章,基本把的核心知識點的基本語法標準庫等章節(jié)講解完本章開始進入核心知識點的高級部分面向?qū)ο蟮某绦蛟O(shè)計,這一部分的內(nèi)容將會對對象 目錄 導(dǎo)語 1.理解對象和面向?qū)ο蟮某绦蛟O(shè)計 2.創(chuàng)建對象的方式 3.JavaScript的繼承機制 3.1 原型對象 3.2 原型鏈 3.3 與...
摘要:封裝是面向?qū)ο蟮奶卣髦唬菍ο蠛皖惛拍畹闹饕匦浴Mㄟ^這種方式,對象對內(nèi)部數(shù)據(jù)提供了不同級別的保護,以防止程序中無關(guān)的部分意外的改變或錯誤的使用了對象的私有部分。構(gòu)造函數(shù)通常被用來自動執(zhí)行很多初始化操作。 之前的相關(guān)問題 面向?qū)ο蠛兔嫦蜻^程的差別,各自的優(yōu)缺點 面向?qū)ο笥心男┗咎匦裕扛髯蕴匦詭砟男┖锰?面向?qū)ο蟮幕菊Z法? 面向?qū)ο蟮幕咎匦缘幕緦崿F(xiàn) 面向?qū)ο蠼Y(jié)合各種設(shè)計模式...
閱讀 2142·2021-10-12 10:11
閱讀 843·2021-10-09 09:41
閱讀 3757·2021-09-09 11:37
閱讀 1933·2021-09-08 10:41
閱讀 2634·2019-08-30 12:58
閱讀 2369·2019-08-30 10:58
閱讀 1272·2019-08-26 13:40
閱讀 4098·2019-08-26 13:36