TypechoJoeTheme

Dcr163的博客

统计

PHP面向对象接口(interface)笔记

2016-03-10
/
0 评论
/
993 阅读
/
正在检测是否收录...
03/10

<?php 

/*
PHP面向对象接口笔记
-- 某个类实现(implements)了某个接口和继承(extends)了某个类的区别
1.实现接口跟继承类很类似,但是接口不能直接创建自己的对象;如果创建了'IcanEat'这个接口的对象,那么具体怎么吃根本不知道
2.继承的父类必须有该方法的具体实现,子类可以重写父类的方法,也可以不重写
3.接口里面的方法是不需要具体实现的,只要定义了方法的名称和参数就可以了,具体的实现必须在实现类中定义
 
-- 一句话概括:类的方法必须有实现,接口的方法必须为空
 */
// interface 关键字用于定义接口
interface IcanEat{
// 接口里面的方法不需要有方法的实现
public function eat($food);
}
// implements关键字用于表示类实现某个接口
class Human implements IcanEat{
 
// 实现了某个接口之后,必须提供接口中定义的方法的具体实现
public function eat($food){
echo 'Human eating for '.$food.'<br>';
}
}
 
 
class beast implements IcanEat{
public function eat($food){
echo 'Dog Like eating '.$food.'<br/>';
}
}
 
class Women implements IcanEat{
public function eat($food){
 
}
}
 
$obj=new Human();
$obj->eat('mokey');
 
$dog=new beast();
$dog->eat('bone');
 
$women=new Women();
$women->eat('d');
 
// 接口是不能实例化的,所以这行会报错
// Fatal error: Cannot instantiate interface IcanEat 
// $testInter=new IcanEat();
 
// 可以用instanceof 关键字来判断某个对象是否实现了某个接口
 
 
function CheckEat($obj){
if($obj instanceof IcanEat){
$obj->eat('food');
}else{
echo 'Eat() Not\'s ok<br/>';
}
}
 
CheckEat($obj);
 
 
// 接口也是可以继承的,但是子类必须要实现父类的方法,才能继续添加使用自己的方法
interface IcanSlp extends IcanEat{
public function eat($food);
public function sleep();
}
 
 ?>
朗读
赞(0)
版权属于:

Dcr163的博客

本文链接:

http://dcr163.cn/69.html(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. slot mpo terbaru
    2025-02-08
  2. Sherry Stockdill
    2025-01-28
  3. slot demo
    2025-01-13
  4. 陌天
    2025-01-09
  5. Kerrie Bostick
    2024-12-28

标签云