- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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.{
}
接口它的作用就是 声明一些方法,供其它类来实现. 接口还体现编程中我们希望的效果 高内聚低耦合 的特点:
深入讨论
文档评论(0)