pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

全面解析PHP面向對象的三大特征

下面小編就為大家帶來一篇全面解析PHP面向對象的三大特征。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

PHP面向對象的三大特征: 繼承,封裝,多態

一.繼承

1、如何實現繼承?

給子類使用extends關鍵字,讓子類繼承父類;

class Student extends Person{}

2、實現繼承的注意事項?

① 子類只能繼承父類的非私有屬性。

②子類繼承父類后,相當于將父類的屬性和方法copy到子類,可以直接使用$this調用。

③ PHP只能單繼承,不支持一個類繼承多個類。但是一個類進行多層繼承;

     class Person{}

     class Chengnian extends Person{}

     class Student extends Chengnian{}

  //Student類就同時具有了Chengnian類和Person類的屬性和方法

3、方法覆蓋(方法重寫)

條件① 子類繼承父類。

條件② 子類重寫父類已有方法。

符合上述兩個條件,稱為方法覆蓋。覆蓋之后,子類調用方法,將調用子類自己的方法。

同樣,除了方法覆蓋,子類也可以具有與父類同名的屬性,進行屬性覆蓋。

4、如果,子類重寫了父類方法,如何在子類中調用父類同名方法?

partent::方法名();

所以,當子類繼承父類時,需在子類的構造中的第一步,首先調用父類構造進行復制。

  function __construct($name,$sex,$school){

    parent::__construct($name,$sex);

    $this->school = $school;

  }

實例一枚:

class Student extends Person{      //子類繼承父類
  public $school;           function __construct($name,$sex,$school){   //子類的構造函數
   parent::__construct($name,$sex);  //調用父類構造進行復制
   $this->school = $school;
  }
  
  function program(){
   echo "PHP真好玩!我愛PHP!PHP是世界上最好用的編程語言!<br>";
  }
  
  function say(){
   parent::say();      //重寫父類的同名方法
   echo "我是{$this->school}的";
  }
 }
 
 $zhangsan = new Student("張三","男","起航");
 $zhangsan->say();
 $zhangsan->program(); 

二、封裝

1、什么是封裝?

通過訪問修飾符,將類中不需要外部訪問的屬性和方法進行私有化處理,以實現訪問控制。

【注意】:是實現訪問控制,而不是拒絕訪問。 也就是說,我們私有化屬性之后,需要提供對應的方法,讓用戶通過我們提供的方法處理屬性。

2、封裝的作用?

①使用者只關心類能夠提供的功能,而不必關心功能實現的細節!(封裝方法)

②對用戶的數據進行控制,防止設置不合法數據,控制返回給用戶的數據(屬性封裝+set/get方法)

3、實現封裝操作?

① 方法的封裝

對于一些只在類內部使用的方法,而不像對外部提供使用。那么,這樣的方法我們可以使用private進行私有化處理。
private function formatName(){} //這個方法僅僅能在類內部使用$this調用
function showName(){
$this -> formatName();
}

②屬性的封裝+set/get方法

為了控制屬性的設置以及讀取,可以將屬性進行私有化處理,并要求用戶通過我們提供的set/get方法進行設置
private $age;
function setAge($age){
$this->age = $age;
}
function getAge(){
return $this->age;
}
$對象 -> getAge();
$對象 -> setAge(12);

③ 屬性的封裝+魔術方法

private $age;
function __get($key){
return $this->$key;
}
function __set($key,$value){
$this->$key=$value;
}
$對象->age; // 訪問對象私有屬性時,自動調用__get()魔術方法,并且將訪問的屬性名傳給__get()方法;
$對象->age=12; // 設置對象私有屬性時,自動調用__set()魔術方法,并且將設置的屬性名以及屬性值傳給__set()方法;

【 注意】:在魔術方法中,可以使用分支結構,判斷$key的不同,進行不同操作。

4、關于封裝的魔術方法:

① __set($key,$value):給類私有屬性賦值時自動調用,調用時給方法傳遞兩個參數:需要設置的屬性名、屬性值;

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

主站蜘蛛池模板: 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 新能源汽车教学设备厂家报价[汽车教学设备运营18年]-恒信教具 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 杭州|上海贴标机-百科| 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 「阿尔法设计官网」工业设计_产品设计_产品外观设计 深圳工业设计公司 | 搅拌磨|搅拌球磨机|循环磨|循环球磨机-无锡市少宏粉体科技有限公司 | 健康管理师报考条件,考试时间,报名入口—首页 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 厌氧反应器,IC厌氧反应器,厌氧三相分离器-山东创博环保科技有限公司 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 砖机托板价格|免烧砖托板|空心砖托板厂家_山东宏升砖机托板厂 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 模具硅橡胶,人体硅胶,移印硅胶浆厂家-宏图硅胶科技 | 贵州水玻璃_-贵阳花溪闽兴水玻璃厂 | 扒渣机厂家_扒渣机价格_矿用扒渣机_铣挖机_撬毛台车_襄阳永力通扒渣机公司 | 申江储气罐厂家,储气罐批发价格,储气罐规格-上海申江压力容器有限公司(厂) | 小小作文网_中小学优秀作文范文大全 | 磁力加热搅拌器-多工位|大功率|数显恒温磁力搅拌器-司乐仪器官网 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 首页_中夏易经起名网| 方源木业官网-四川木门-全国木门专业品牌 | 微水泥_硅藻泥_艺术涂料_艺术漆_艺术漆加盟-青岛泥之韵环保壁材 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 热镀锌槽钢|角钢|工字钢|圆钢|H型钢|扁钢|花纹板-天津千百顺钢铁贸易有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 物流公司电话|附近物流公司电话上门取货 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 安徽成考网-安徽成人高考网 | 自动化展_机器人展_机床展_工业互联网展_广东佛山工博会 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 | 炉门刀边腹板,焦化设备配件,焦化焦炉设备_沧州瑞创机械制造有限公司 |