- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
php面向对象之抽象类、接口
抽象类
为什么设计抽象类这个技术?
在实际开发中,我们可能有这样一种类,是其它类的父类,但是它本身并不需要实例化,主要用途是用于让子类来继承,这样可以到达代码复用. 同时利于项目设计者,设计类.
/在实现方法覆盖的时候,访问修饰符可以不一样
//但是必须满足: 子类的访问范围=父类的访问范围
abstract class Animal{
public $name;
protected $age;
//这个方法没有方法体,这个方法主要是为了让子类去实现.
abstract public function cry();
}
class Cat extends Animal{
public function cry(){
echo 猫猫叫唤..;
}
}
//创建一个子类实例
$cat1=new Cat();
$cat1-cry();
使用抽象类的注意事项:
基本用法
abstract class 类名{
//方法 []
//属性 []
}
如果一个类使用abstract 来修饰,则该类就是抽象类, 如果一个方法被abstract修饰,则该方法就是抽象方法【抽象方法就不能有方法体.】
抽象类可以没有抽象方法.同时还可以有实现了的方法.
?php
//在实现方法覆盖的时候,访问修饰符可以不一样
//但是必须满足: 子类的访问范围=父类的访问范围
abstract class Animal{
public $name=abc;
protected $age;
//这个方法没有方法体,这个方法主要是为了让子类去实现.
abstract public function cry();
public function getName(){
return $this-name;
}
}
class Cat extends Animal{
public function cry(){
echo 猫猫叫唤..;
}
}
//创建一个子类实例
$cat1=new Cat();
$cat1-cry();
echo $cat1-getName();
如果一个类中,只要有抽象方法,则该类必须声明为abstract
abstract class A{
abstract function test();
}
echo ok;
如果A类继承了一个抽象类 B,则要求A类实现从B类继承的所有抽象方法
案例:
//这是一个抽象类
abstract class A{
abstract function test();
}
//B类要么自己抽象,或者实现从A类继承的抽象方法.
class B extends A{
function test(){
echo 我实现A:test();
}
}
echo hello;
接口
?php
//使用程序模拟现实情况
//定义规范(方法/属性)
interface iUsb{
public function start();
public function stop();
}
//编写相机类,让它去实现接口
//1.当一个类实现了 某个接口,则要求该类必须实现这个接口的所有方法
class Camera implements iUsb{
public function start(){
echo 相机开始工作;
}
public function stop(){
echo 相机停止工作...;
}
}
//编写手机类
class Phone implements iUsb{
public function start(){
echo 手机开始工作;
}
public function stop(){
echo 手机停止工作...;
}
}
//如何使用
$camera1=new Camera();
$camera1-start();
$camera1-stop();
echo br/;
//手机对象
$phone1=new Phone();
$phone1-start();
$phone1-stop();
?
接口的使用基本语法
interface 接口名{
//属性
//方法
}
? 接口的方法都不能有方法体
如何去实现接口
class 类名 implements 接口名1,接口2.{
}
接口它的作用就是 声明一些方法,供其它类来实现. 接口还体现编程中我们希望的效果 高内聚低耦合 的特点:
深入讨论
您可能关注的文档
最近下载
- 湖南省自然科学基金学科分类目录及代码.pdf VIP
- 人教版三年级上册道德与法治教学计划.docx VIP
- 检验检测机构资质认定评审准则培训考试卷(附答案).docx VIP
- 事业单位内部控制操作手册.pdf VIP
- DB32T 4611-2023 建设用地地下水污染修复和风险管控技术导则.pdf VIP
- 8.煮面条(课件) 教学课件.ppt VIP
- 《新媒体技术:基础 案例 应用》课件 项目5 使用自媒体工具.pptx VIP
- 2025年济南市中考语文试题卷(含答案解析).docx
- 第2课 第二次鸦片战争 课件(26张PPT).pptx VIP
- 项贤明主编马工程教材《教育学原理》第九章教师与学生.ppt VIP
文档评论(0)