PHP5接口技术入门
2024-09-07 00:55:00
在PHP中我们声明类一般都用class来声明。
<?php
class Student{ //用class声明一个Student类 function __construct(){ //实例化类的时候自动加载的构造方法__construct() } public function index(){ //成员方法 } abstract function fun1(); //抽象方法fun1,使用 abstract 关键字来修饰 abstract function fun2(); //抽象方法fun2 }
?>
- 下面来说一下一个最简单的继承
<?php
class Student extends Person{ //使用 class 来声明一个Student类,并用 extends 来继承 Person类 function __construct(){ //实例化类的时候自动加载的构造方法__construct()
parent::__construct(); //继承父类,继承父类要在子类中的构造方法中最开始就使用 parent::__construct(); 来继承。
} public function index(){ //成员方法 } abstract function fun1(); //抽象方法fun1,使用 abstract 关键字来修饰 abstract function fun2(); //抽象方法fun2 }
?>
- 再说一个抽象类
- 抽象类也要使用“abstract”关键字来修饰;在抽象类里面可以有不是抽象的方法和成员属性,但只要有一个方法是抽象的方法,这个类就必须声明为抽象类,使用“abstract”来修饰。
<?php
abstract class Demo{
var $test;
abstract function fun1();
abstract function fun2();
function fun3(){ }
} $demo=new Demo(); //抽象类为能产生实例对象,所以这样做是错的,实例化对象交给子类
class Test extends Demo{
function fun1(){ }
function fun2(){ }
}
$test=new Test(); //子类可以实例化对象,因为实现了父类中所有抽象方法
?>
- PHP 与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类.为了解决这个问题,PHP 引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法。接口是一种特殊的抽象类,抽象类又是一种特殊的类,所以接口也是一种特殊的类,为什么说接口是一种特殊的抽象类呢?如果一个抽象类里面的所有的方法都是抽象方法,那么我们就换一种声明方法使用“接口”;也就是说接口里面所有的方法必须都是声明为抽象方法,另外接口里面不能声明变量,而且接口里面所有的成员都是public 权限的。所以子类在实现的时候也一定要使用public 权限实限。
- 声明一个类的时候我们使用的关键字是“class”,而接口一种特殊的类,使用的关键字是“interface”;
类的定义:class 类名{ … },接口的声明:interface 接口名{ … }
<?php
//定义一个接口使用interface 关键字,“One”为接口名称
interface One{
//定义一个常量
const constant = 'constant value';
//定义了一个抽象方法”fun1”
public function fun1();
//定义了抽象方法”fun2”
public function fun2();
}
?>
- 使用“extends”关键字让一个接口去继承另一个接口;
<?php
//使用”extends”继承另外一个接口
interface Two extends One{
function fun3();
function fun4();
}
?>
- 定义一个接口的子类去实现接口中全部抽象方法使用的关键字是“implements”,而不是我们前面所说的“extends”
<?php
//使用“implements”这个关键字去实现接口中的抽象方法
class Three implements One{
function fun1(){ }
function fun2(){ }
}
//实现了全部方法,我们去可以使用子类去实例化对象了
$three=new Three();
?>
- 实现多个接口
<?php
//使用implements实现多个接口
class Four implemtns 接口一, 接口二, … .{
//必须把所有接口中的方法都要实现才可以实例化对象。
}
?>
- 不仅一个类可以实现多个接口,也可以在继承一个类的同时实现多个接口, 一定要先继承类再去实现接口;
<?php
//使用extends 继承一个类,使用implements 实现多个接口
class Four extends 类名一implemtns 接口一, 接口二, … .{
//所有接口中的方法都要实现才可以实例化对象
… … … ..
}
?>
最新文章
- JavaScript面向对象和原型函数
- AJAX 三级联动
- System.Data.Dbtype转换为System.Data.SqlDbType
- Java中通过Selenium WebDriver定位iframe中的元素
- [转]ANDROID仿IOS微信滑动删除_SWIPELISTVIEW左滑删除例子
- json中头疼的null
- Input文本框属性及js
- DataBase MongoDB基础知识记录
- DDD学习笔记1——分层架构
- SAP 销售条件表增强栏位
- LinkedBlockingQueue源码解析(2)
- CSS半透明兼容写法
- PHP获取POST的原始数据的方法
- [Checking for libstdc++-4.4.4-13.el6-i686; Not found. Failed] 的解决。
- bzoj1002: [FJOI2007]轮状病毒 生成树计数
- JS跨页面或跨JS文件对变量赋值
- SEO中H1标签的用法- 1
- python调用rpc实现分布式系统
- Python全栈 项目(电子词典、协程、pdb调试)
- 解决Storm 和yarn 8080 端口冲突
热门文章
- GitHub网页版基本操作
- 详解多线程MT和多线程MD的区别
- c语言getipaddrtable获得ip地址与sendArp获得mac地址以及一些字节序问题记录
- Windows Server 2016安装.NET Framework 3.5
- 清晰架构(Clean Architecture)的Go微服务: 程序设计
- Java开发简单的家居购物商城系统 JSP 附源码
- 红帽RHCE培训-课程3笔记内容1
- vscode 双击选中用中划线拼接的名称和几个常用的扩展
- PAT 1017 Queueing at Bank (模拟)
- 封装ajax库,post请求