PHP面向对象程序设计之接口的继承定义与用法详解
本文原创自news.mkq.online
版权声明:本文为原创文章,版权牛站新闻所有
转载请注明http://www.niuzhan.com/Bago/
本文实例讲述了PHP面向对象程序设计之接口的继承定义与用法。分享给大家供大家参考,具体如下:
在PHP5中,接口是可以继承自另外一个接口的。这样代码的重用更有效了。要注意只有接口和接口之间使用 继承关键字 extends。类实现接口必须实现其抽象方法,使用实现关键字 implements。
下面的这个例子定义接口User,User有两个抽象方法 getName和setName。 又定义了接口VipUser, 继承自User接口,并增加了和折扣相关的方法getDiscount。
最后定义了类 Vip ,实现了VipUser接口。并实现了其中的三个方法。
01
<?php
02
interface User {
03
public function getName();
04
public function setName($_name);
05
}
06
interface VipUser extends User {
07
public function getDiscount(); //添加了获得折扣的抽象方法.
08
}
09
class Vip implements VipUser {
10
private $name;
11
private $discount = 0.8;// 定义折扣变量
12
public function getName(){ //实现getName方法
13
return KaTeX parse error: Expected 'EOF', got '}' at position 19: …s->name;
14
}̲
15
public f…_name){//实现setName方法
16
$this->name = $_name;
17
}
18
public function getDiscount(){//实现折扣方法.
19
return $this->discount;
20
}
21
}
22
?>
接口可以实现多继承,这是接口很特殊的地方。注意下面的代码和用法。
01
<?php
02
interface User {
03
public function getName();
04
public function setName(KaTeX parse error: Expected 'EOF', got '}' at position 13: _name);
05
}̲
06
interface …_news);
08
}
09
//注意这里的多继承.
10
interface NewsAdministrator extends User,Administrator{
11
}
12
class NewsAdmin implements NewsAdministrator { //实现接口
13
public function getName(){
14
//…
15
}
16
public function setName(name)17//.........1819publicfunctionsetNews(_name){
17
//.........
18
}
19
public function setNews(name)17//.........1819publicfunctionsetNews(_news){
20
//…
21
}
22
}
23
?>
抽象类实现接口,可以不实现其中的抽象方法,而将抽象方法的实现交付给具体能被实例化的类去处理。
01
<?php
02
interface User {
03
public function getName();
04
public function setName($_name);
05
}
06
//AbstractNormalUser 只实现了 User接口中的一个方法,
07
abstract class AbstractNormalUser{
08
protected $name;
09
public function getName(){
10
return KaTeX parse error: Expected 'EOF', got '}' at position 19: …s->name;
11
}̲
12
}
13
//这里…_name){
16
$this->name = $_name;
17
}
18
}
19
$normalUser = new NormalUser();
20
normalUser−>setName("tom");21echo"nameis".normalUser->setName("tom");
21
echo "name is ".normalUser−>setName("tom");21echo"nameis".normalUser->getName();
22
?>
运行结果:
name is tom
- PHP面向对象程序设计之接口的继承定义与用法详解
- PHP面向对象程序设计类的定义与用法简单示例
- PHP面向对象程序设计之接口用法
- PHP面向对象程序设计之接口用法
- PHP面向对象继承用法详解(优化与减少代码重复)
- PHP面向对象程序设计继承用法简单示例
- Python面向对象程序设计之继承与多继承用法分析
- Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
- C++ Pirmer : 第十五章 : 面向对象程序设计之基类和派生的定义、类型转换与继承与虚函数
- PHP面向对象程序设计之抽象类和接口
- PHP面向对象程序设计之类常量用法实例
- PHP面向对象程序设计之命名空间与自动加载类详解
- PHP面向对象之旅:接口与组合模拟多继承
- PHP面向对象程序设计之类常量用法实例
- PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
- PHP面向对象程序设计之对象生成方法详解
- PHP面向对象程序设计之类与反射API详解
- PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
- PHP面向对象程序设计方法实例详解
- PHP面向对象之旅:接口的继承