设计模式-接口多态

<?php
//飞行接口
interface Flyable {
function fly($obj);
}
//飞行接口类的具体实现
class Action implements Flyable{
function fly($obj){
if($obj instanceof Aduck){
echo ‘Aduck is flying<br/>‘;
}else if($obj instanceof Bduck){
echo ‘Bduck is flying<br/>‘;
}else{
echo ‘cannot fly<br/>‘;
}
}
}

//基类
class Duck {
protected $_flyAction;
public function __construct(){
$this->_flyAction = new Action();
}
public function shape(){
echo ‘duck shape‘;
}

public function life() {
echo ‘a duck life‘;
}
}

//A子类
class Aduck extends Duck {
public function fly(){
echo $this->_flyAction->fly($this);
}
}

//B子类
class Bduck extends Duck {
public function fly(){
echo $this->_flyAction->fly($this);
}
}

//C子类
class Cduck extends Duck {
public function fly(){
echo $this->_flyAction->fly($this);
}
}

$a = new Aduck();
$b = new Bduck();
$c = new Cduck();

$a->fly();
$b->fly();
$c->fly();

时间: 2024-09-30 20:50:36

设计模式-接口多态的相关文章

面向对象(接口 ,多态)

接口 (1)当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式:接口 ,接口是功能的集合 接口不能创建对象 (2)格式 父接口:public interface Tnter{ } 子类:public class interImp implements Itner{ } 接口的使用 1.接口不能创建对象 2.定义实现类来实现接口 实现的关键字 implements 3.重写抽象方法 4.创建实现类对象 调用方法 接口的特点 1.不需要被abstract 修饰 2.类实现接口,可以单实

C语言的设计模式-接口隔离

C语言的设计模式-接口隔离 接口隔离: 定义为客户端不应该依赖它不需用的接口,在C语言中我们可以把头文件看成一个模块的接口,根据接口隔离原则也就是说这个头文件中只能包含外部需要的接口,但在实际的项目中往往头文件都不符合接口隔离原则. 1:内.外部接口的隔离:头文件中通常包含了模块内部接口(内部类型定义.内部接口声明)和外部接口(外部接口声明) 假设moudle模块对外提供一个fun1接口,模块内部实现需要定义一个结构类型,一般的实现如下: /*moudle.h*/typedef struct s

设计模式 - 接口和抽象类

总结: 1. 同一类用抽象 2. 不同类同一功能用接口 3. 接口尽量功能少设计模式 - 接口和抽象类

我的学习之路_第二章_接口/多态

接口 (1)当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式:接口.接口是功能的集合 接口不能创建对象 (2)格式: 父接口: public interface Inter { } 子类: public class InterImpl implements Inter { } (3)接口的特点: A:不需要被abstract修饰. B:类实现接口,可以单实现,还可以多实现. C:接口可以继承接口,可以单继承,也可以多继承. D:接口与父类的功能可以重复,均代表要具备某种功能. (

抽象类 接口 多态

一 抽象类(abstract) 抽象类的概念只抽取了很多类的方法的声明,方法声明用abstract修饰.一个类如果有抽象方法,那么这个类必须是抽象类.抽象类里边可以没有抽象方法,如果这么做只有一个目的:不让你创建这个类的对象.抽象类不能被实例化,不能创建对象.如果一个类继承抽象类,那么,它要么重写抽象类中的所有抽象方法,要么本身也是抽象类. 抽象类的成员成员变量:可以是常量,也可以是变量.子类可以直接继承抽象类中的成员变量.成员方法:可以是抽象的,也可以是非抽象的.抽象方法在子类中必须要被实现.

day24 继承 接口 多态

抽象类与接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 class Alipay: ''' 支付宝支付 ''' def pay(self,money): print('支付宝支付了%s元'%money) class Applepay: ''' apple pay支付 ''' def pay(

接口--多态

1.写出定义接口的格式 interface A{     public abstract void work(); } 注: (1)接口的权限修饰符如果不标明,默认为default,仅可在本包中访问; (2)接口中的方法必须为抽象方法,且public abstract可以不写,默认为public abstract.实际开发中通常写为 public void work(); (3)接口的子类叫做实现类,命名方式一般为:接口名+Impl,如InterfaceImpl; (4)java8中有新特性,可

instanceof 操作符 接口 多态

instanceof 操作符result =  对象名称 instanceof 类型 参数:result:布尔类型. 对象名称:必选项,任意对象表达式. 类型:必选项,任意已定义的类,可以是api中的类,也可以说自定义的类. 说明:如果对象是这个类型的实例,则instanceof运算符返回true.如果对象不是指定类的一个实例,或者对象是null,则返回false Object类Object类是所有类的父类object类的作用object类中的方法 接口 是特殊的抽象类即所有方法都是抽象方法的类

小菜学设计模式——接口隔离原则

背景 本文标题为什么叫小菜学习设计模式,原因是本文内容主要是学习<大话设计模式>时的笔记摘要部分,当然,并不是记录书中小菜的学习过程,这个完全没有意义,而是指本人学习设计模式的成长之旅. 真诚的希望自己能够从一名小菜成长为一名大鸟! 编写的程序应该满足: 1)可维护 2)可扩展 3)可复用 4)够灵活 废话少说,言归正传,设计模式原则之:接口隔离原则 书面理解 接口隔离原则:使用多个小的专门的接口,而不要使用一个大的总接口. 接口应该是内聚的,应该避免"胖"接口.一个类对另