interface -- 接口类

<?php

/**

*为了声明接口,需要使用关键字interface

*interface IExampleInterface {}

*说明(大多数开发人员选择在节后名称前加上大写字母I作为前缀,以便在代码和生成的文档中将其与类区别开来)

*和继承抽象类需要使用extends关键字不同的是,实现接口使用的是implements关键字。

*class ExampleClass implements IExampleInterface {}

*前面提到过,接口优于抽象类的一点是每个类可以使用多个接口。当希望在一个类中实现两个或者两个以上接口时,我们可以用逗号将它们隔开。例如,如果有一个具有数组风格的对象,希望它同时具有迭代和计数的功能,那么我们可以定义这样的一个类。

*class MyArrayLikeObject implements Iterator, Countable {}

*

*

*/

interface ISpeedInfo {

function getMaximumSpeed();

}

class Car {

//任何基类方法

}

class FastCar extends Car implements ISpeedInfo {

function getMaximumSpeed() {

return 150;

}

}

class BadCar extends FastCar{}

$a = new FastCar();

echo $a->getMaximumSpeed(); //150

echo ‘<br />‘;

class Street extends FastCar {

protected $speedLimit;

protected $cars;

public function __construct($speedLimit = 200) {

$this->cars = array(); //初始化变量

$this->speedLimit = $speedLimit;

}

function isStreetLegal($car) {

if($car instanceof ISpeedInfo) {

if($car->getMaximumSpeed() < $this->speedLimit) {

return true;

} else {

return false;

}

} else {

//扩展类必须实现ISpeedInfo才能使street合法

return false;

}

}

public function addCar($car) {

if($this->isStreeLegal($car)) {

echo ‘The Car was allowed on the road.‘;

$this->cars[] = $car;

} else {

echo ‘The Car is too fast and was not allowed on the road.‘;

}

}

}

/* class Street extends FastCar{} */

$a = new Street();

echo $a->getMaximumSpeed(); //150

时间: 2024-10-12 13:44:41

interface -- 接口类的相关文章

java基础2.-------interface接口类,实现接口

1.为什么使用接口,是把功能方法都写在一个类中,在其他需要调用的时候,通过implements实现该接口 2.接口可以继承多个父类接口,在实现接口的时候,实现类实现所有方法 3.在接口类写方法时,自动生成方法 子类继承两个父类接口 实现类实现所有方法

python 抽象类和接口类

一.接口类 继承的两种用途: 1.继承基类的方法,并且做出自己的改变或者扩展(代码重用) 2.声明某个子类兼容于某个基类,定义一个接口类interface,接口类中定义了一些接口名(就是函数 名)  且并未实现接口中的功能. 实践中,继承的第一种用法意义不大,有时候常常有害的.因为它使得子类与基类出现强耦合. 继承的第二种含义非常重要,它叫‘接口继承’. 接口继承是实质上要求‘做出一个良好的抽象’,这个抽象规定了一个兼容接口,使得外部调用者无需关心内部细节,可以一视同仁的处理实现特定接口的所有对

PHP接口类interface的正确使用方法

1.接口的定义: 接口:一种成员属性为抽象的特殊抽象类,在程序中同为规范的作用2.其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这 个时候PHP接口类interface就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 :interface Shop  {  public function buy($gid);  public function sell($gid);  

Interface接口的设置是由其他模块决定的

描述:我写了个登陆器   无非就是登陆和注册这2个功能,当然还有一个验证码功能 根据职责性,我登陆器不涉及任何用户有关操作. 但我需要规定用户模型必须有以下几个功能,我登陆器才能使用,登陆.注册.根据名字获取用户的个人信息. 所以我设置如下 <?php interface IMember {    /**   * 根据用户名获取用户信息 用户名不指定可以是邮箱.昵称或者手机号码   * @param String $username   */  public function getOneMem

PHP中的特殊类,接口类和抽象类(都不能直接实例化)

接口类不用实例化,需要一一实现接口定义的所有方法.关键字interface implements 接口interface 是一个规定,给人继承用的东西,有点像抽象类在里面定义的方法,却不去实例化,而需要别的类去implements 它,而且必须一一实现接口定义的所有方法, 实际上接口类说白了,就是一个类的模板,一个类的规定, 举个例子interface Shop { public function buy($gid); public function sell($gid); public fun

php 接口类与抽象类的实际作用

1.php 接口类:interface 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 : interface Shop { public function buy($gid); public function sell($gid); public function view($gid); } 我声明一

java====interface接口

package cn.china; abstract class AbsDemo{ abstract void show1(); abstract void show2(); } /** *当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用 *另一种形式定义和表示,就是 接口 interface * *定义接口使用的关键字不是class,是interface. **/ interface Demo5{ public static final int NUMBER=4; public abs

Java知多少(39)interface接口

在抽象类中,可以包含一个或多个抽象方法:但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加“抽象”. 接口使用 interface 关键字来声明,可以看做是一种特殊的抽象类,可以指定一个类必须做什么,而不是规定它如何去做. 现实中也有很多接口的实例,比如说串口电脑硬盘,Serial ATA委员会指定了Serial ATA 2.0规范,这种规范就是接口.Serial ATA委员会不负责生产硬盘,只是指定通用的规范. 希捷.日立.三星等生产厂家会按照规范生产符合

python开发面向对象基础:接口类&amp;抽象类&amp;多态&amp;多继承

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