在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 接口一, 接口二, … .{
//所有接口中的方法都要实现才可以实例化对象
… … … ..
}
?>

  

最新文章

  1. JavaScript面向对象和原型函数
  2. AJAX 三级联动
  3. System.Data.Dbtype转换为System.Data.SqlDbType
  4. Java中通过Selenium WebDriver定位iframe中的元素
  5. [转]ANDROID仿IOS微信滑动删除_SWIPELISTVIEW左滑删除例子
  6. json中头疼的null
  7. Input文本框属性及js
  8. DataBase MongoDB基础知识记录
  9. DDD学习笔记1——分层架构
  10. SAP 销售条件表增强栏位
  11. LinkedBlockingQueue源码解析(2)
  12. CSS半透明兼容写法
  13. PHP获取POST的原始数据的方法
  14. [Checking for libstdc++-4.4.4-13.el6-i686; Not found. Failed] 的解决。
  15. bzoj1002: [FJOI2007]轮状病毒 生成树计数
  16. JS跨页面或跨JS文件对变量赋值
  17. SEO中H1标签的用法- 1
  18. python调用rpc实现分布式系统
  19. Python全栈 项目(电子词典、协程、pdb调试)
  20. 解决Storm 和yarn 8080 端口冲突

热门文章

  1. GitHub网页版基本操作
  2. 详解多线程MT和多线程MD的区别
  3. c语言getipaddrtable获得ip地址与sendArp获得mac地址以及一些字节序问题记录
  4. Windows Server 2016安装.NET Framework 3.5
  5. 清晰架构(Clean Architecture)的Go微服务: 程序设计
  6. Java开发简单的家居购物商城系统 JSP 附源码
  7. 红帽RHCE培训-课程3笔记内容1
  8. vscode 双击选中用中划线拼接的名称和几个常用的扩展
  9. PAT 1017 Queueing at Bank (模拟)
  10. 封装ajax库,post请求