PHP面向对象:接口与抽象方法
来源:互联网 发布:淘宝店铺怎么修改域名 编辑:程序博客网 时间:2024/05/16 16:57
原文地址:点击打开链接
接口(interface)是抽象方法和静态常量定义的集合。
接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量。
接口中没有其它类型的内容。
我们先写接口的定义,下面的例子是接口的一个简单写法。
1
interface
接口名{
2
}
下面的例子定义了一个接口 User ,这个接口中有两个抽象方法,getName() 和 setName()。能看到接口的写法和类很相似。
1
<?
2
interface
User {
3
function
getName();
4
function
setName(
$_name
);
5
}
6
?>
注意,在接口中只能有抽象方法。如果在接口中出现了非抽象方法,会报错如下:
Interface function User::setName() cannot contain body in ……….
1
<?
2
interface
User {
3
function
getName();
4
function
setName(
$_name
){}
5
}
6
?>
程序运行如下:
1
Fatal error: Interface
function
User::setName() cannot contain body in E:\PHPProjects\test.php on line 4
在接口中的抽象方法只能是public的,默认也是public权限。
并且不能设置成 private 或者 protected 类型。
否则会报错如下:
Access type for interface method User::setName() must be omitted in —on line —
在接口中,访问类型必须忽略。
1
<?
2
interface
User {
3
public
function
getName();
4
private
function
setName(
$_name
);
5
}
6
?>
程序运行如下:
1
Fatal error: Access type
for
interface
method User::setName() must be omitted in E:\PHPProjects\test.php on line 4
protected访问权限也会有问题
1
<?
2
interface
User {
3
public
function
getName();
4
protected
function
setName(
$_name
);
5
}
6
?>
程序运行如下:
1
Fatal error: Access type
for
interface
method User::setName() must be omitted in E:\PHPProjects\test.php on line 4
即使abstract 和 final 修饰符不能修饰接口中的抽象方法。
1
<?
2
interface
User {
3
final
function
getName();
4
abstract
function
setName(
$_name
);
5
}
6
?>
类名和接口名不能相同
<?phpinterface lito{ public function get_name(); public function get_age();}class lito implements lito{ protected $name; protected $age; protected $weight; protected $country; function get_name(){ } function get_age(){ } }会报错
( ! ) Fatal error: Cannot redeclare class lito in E:\wamp\www\oop\interface.php on line 9Call Stack#TimeMemoryFunctionLocation10.0000242968{main}( )..\interface.php:0
0 0
- PHP面向对象:接口与抽象方法
- php面向对象中抽象类与接口的使用:
- PHP面向对象 1.8 抽象类与接口
- php面向对象编程:抽象类与接口的区别
- php面向对象(三),抽象类,抽象方法,接口及php的”重载“
- 面向对象--接口与抽象类
- 面向对象的抽象类与接口
- (42)抽象类和抽象方法的应用(43)接口与面向对象中多态的应用
- Java面向对象05-抽象方法,抽象类和接口
- php面向对象笔记8 抽象类与延迟绑定复习和接口
- php面向对象(OOP)—抽象方法和抽象类
- 方法,面向对象,构造方法,继承,多态,抽象类,接口
- PHP面向对象的封装、抽象和接口
- java 面向对象 接口 抽象
- 面向对象---继承、抽象、接口
- 面向对象--继承、接口、抽象
- java面向对象—抽象类、接口与多继承
- java面向对象—抽象类、接口与多继承
- Mac系统下Tomcat安装及配置
- 解决Eclipse进行Android开发时logcat不显示问题-使用DDMS
- iOS本地通知 远程通知
- 自动添加分隔符的EditText
- Debug and Release 优化闲谈
- PHP面向对象:接口与抽象方法
- http://blog.csdn.net/shan9liang/article/details/8803989
- Android Make sure other views do not use the same id. 错误解决
- [php] yii时间控件
- SQLite3开启事务和关闭事务模式下,性能测试对比
- Android 关于子线程更新UI
- PageRank算法简介及Map-Reduce实现
- 图文解释XCode常用快捷键的使用
- [刷题]Merge Sorted Array II