文档详情

php面向对象之抽象类接口.doc

发布:2016-09-19约3.9千字共8页下载文档
文本预览下载声明
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.{ } 接口它的作用就是 声明一些方法,供其它类来实现.
显示全部
相似文档