zoukankan      html  css  js  c++  java
  • PHP面向对象之接口 interface

    类常量

    • 概念
      • 类常量是const常量
    <?php
    class Student {
    	public const ADD= '幸福里1号'; 	//7.1以后才支持访问修饰符
    	// const ADD='地址不详';
    }
    echo Student::ADD;
    ?> 
    
    • define常量和const常量的区别

      • const常量可以做类成员
      • define常量不可以做类成员
    • 常量和静态的属性的区别

      • 相同点:都在加载类的时候分配空间
      • 不同点:常量的值不可以更改,静态属性的值可以更改

    接口 interface

    • 接口概念
      • 如果一个类中所有的方法是都是抽象方法,那么这个抽象类可以声明成接口
      • 接口是一个特殊的抽象类,接口中只能有抽象方法和常量
      • 接口中的抽象方法只能是public,可以省略,默认也是public的
      • 通过implements关键字来实现接口
      • 不能使用abstract和final来修饰接口中的抽象方法
    <?php
    <?php
    //声明接口
    interface IPerson {
    	const ADD= '幸福里1号<br>';
    	function fun1();
    	function fun2();
    }
    //接口实现
    class Student implements IPerson {
    	public function fun1() {
    		echo '幸福里的人!<br>';
    	}
    	public function fun2() {
    		echo '幸福里的事!<br>';
    	}
    }
    //访问接口中的常量
    echo IPerson::ADD;
    $stu= new Student();
    $stu->fun1();
    $stu->fun2();
    ?> 
    

    接口的多重实现

    • 概念
      • 类不允许多重继承,但是接口允许多重实现
    <?php
    //声明接口
    interface IPic1 {
    	function fun1();
    }
    interface IPic2 {
    	function fun2();
    }
    //接口实现
    class Student implements IPic1,IPic2 {
    	public function fun1() {
    		echo '幸福里的人!<br>';
    	}
    	public function fun2() {
    		echo '幸福里的事!<br>';
    	}
    }
    //访问接口中的常量
    $stu= new Student();
    $stu->fun1();
    $stu->fun2();
    ?> 
    
    • 说明
      • 在接口的多重实现中,如果有同名的方法,只要实现一次即可
      • 类可以继承的同时实现接口
    <?php
    //抽象类
    abstract class Person {
    	public const ADD= '幸福里1号';
    	public abstract function setInfo();	
    	public function getInfo() {
    		echo static::ADD.'获取信息<br>';
    	}
    }
    //声明接口
    interface IPic1 {
    	function fun1();
    }
    interface IPic2 {
    	function fun2();
    }
    //接口实现
    class Student extends Person implements IPic1,IPic2 {
    	public const ADD= '幸福里2号';
    	public function fun1() {
    		echo '幸福里的人!<br>';
    	}
    	public function fun2() {
    		echo '幸福里的事!<br>';
    	}
    	public function setInfo(){
    		echo static::ADD.'信息设置<br>';
    	}
    }
    //访问接口中的常量
    $stu= new Student();
    $stu->fun1();
    $stu->fun2();
    $stu->setInfo();
    $stu->getInfo();
    ?> 
    
  • 相关阅读:
    KMP算法
    cocos2d-x jsbinding 在线更新策略设计
    AS3动画效果公式,常用处理公式代码,基本运动公式,三角公式
    理解引导行为:路径跟踪
    适用于任何语言的编程策略
    Using中return对象
    js计算两个时间相差天数
    fastReport 绑定DataBand数据源后还是打印出一条数据
    无法处理文件 MainForm.resx,因为它位于 Internet 或受限区域中,或者文件上具有 Web 标记。要想处理这些文件,请删除 Web 标记
    附加数据库后登陆报错
  • 原文地址:https://www.cnblogs.com/SharkJiao/p/14117103.html
Copyright © 2011-2022 走看看