• PHP5接口技术入门



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

      

  • 相关阅读:
    Go 工作空间 深度解析
    go语言中获取变量类型的三种方法
    go语言实现分布式对象存储系统之单体对象存储
    curl命令用法
    删除Git服务器文件但是保留本地文件
    pycharm之gitignore设置
    通过pycharm使用git
    python 有关datetime时间日期 以及时间戳转换
    Please, commit your changes or stash them before you can merge
    jinkins配置python虚拟环境
  • 原文地址:https://www.cnblogs.com/xy404/p/3699380.html
Copyright © 2020-2023  润新知