面向对象三大特性: 封装,继承,多态
面向?qū)ο蟮娜筇匦?/strong>:封裝,繼承,多態(tài)。
一、封裝:目的:如何做類,讓類更安全。
讓一些成員變量不能被外界直接被訪問。
方法:
1.將成員變量變?yōu)閜rivate。
2.在類里面做一個(gè)成員方法來間接訪問。
3.在該方法里面加限制條件
4. 標(biāo)準(zhǔn)情況下每一個(gè)成員變量都要做封裝。
為了簡(jiǎn)化用?
魔術(shù)方法:
public function __set($name,$valus){if($name=="age"){if($value>=18 && $value<=50){
$this->$name = $value;
}else{
$this->$name = $vaule;
} } }
public function __get($name){
return $this->$name;
}
$r->age =20 //自動(dòng)調(diào)用魔術(shù)方法__set
echo $r->age;//自動(dòng)調(diào)用魔術(shù)方法__get
?
二、繼承
概念:子類可以繼承父類的一切。父類起到指導(dǎo)性的作用。
特點(diǎn):單繼承(一個(gè)子類只能有一個(gè)父類,一個(gè)父類可以有多個(gè)子類)
關(guān)鍵字:?extends?
class Ren{public $name;public $sex;public function say(){echo "人在講話";}} class China extends Ren{ //有父類的所有內(nèi)容public $yuyan; //擴(kuò)展自己的內(nèi)容
public function say(){ //函數(shù)重寫:子類可對(duì)父類的函數(shù)重寫。 parent::say(); //調(diào)用父類里面的方法
echo "你好";
}
public function test(){ //函數(shù)重載:同名方法,參數(shù)個(gè)數(shù)不同或類型不同,實(shí)現(xiàn)不同功能
echo "測(cè)試";
}
public function test($a){
echo "aaaa";
}
public function test($a,$b){
echo "bbbbb";
} ?
} $c = new China(); $c->say();
重寫:子類可對(duì)父類的函數(shù)重寫。override
重載:一個(gè)方法多個(gè)功能,因?yàn)閰?shù)個(gè)數(shù)不同。方法名相同,參數(shù)個(gè)數(shù)不同。也叫編譯多態(tài)。overload
?
多態(tài):當(dāng)父類引用指向子類實(shí)例時(shí),由于子類對(duì)父類方法進(jìn)行了重寫,在調(diào)用該方法的時(shí)候表現(xiàn)的不同,稱為多態(tài)。也叫運(yùn)行多態(tài)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/niushuangmeng/p/8257615.html
總結(jié)
以上是生活随笔為你收集整理的面向对象三大特性: 封装,继承,多态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 翻译:SQL Server中的索引内部结
- 下一篇: mezzanine安装配置