zoukankan      html  css  js  c++  java
  • PHP 抽象类 和 interface 接口

    静态:

    在类里面 定义的变量   在别的地方引用的时候 只要是  静态引用 就一定要加$

    普通成员 : 属于对象的

    静态成员: 属于类的  static  (通过双冒号调用) 

    调用静态成员:   ren::$zhongzu=”站点”   

     函数(方法 ) 也可以 做成静态的  通过 双冒号 调用 格式:  类名::调用的成员 

    构造方法  做成私有 外界访问不到 类里面   成员不能用   这时可以使用 静态  不需要 初始化   直接用类名 和双冒号  调用

    静态成员和普通成员调用时的区别:

    静态成员的 调用 可以放在任何位置(普通成员里面可以调用静态成员)

    普通成员里不能调用静态成员(原因: 静态方法是属于类的  调用的时候 不需要建立对象  普通成员 是属于对象的 使用前必须建立对象)

    self  在类里面 表示该类  (只可以在 类里面用 花括号 内部)

    $this  在对象里面表示该对象  

    class ren
    {
        public static  $name;
        public static $age;
        function say()
        {}
    }
    class china extends ren
    {
        function say()
        {
            echo self::$name."中国人".self::$age;//这里面 既可以用self 也可以用  ren(父类名)---变量名  加$
            
            }
        
        }
    ren::$name="斗破";//这里面只可以用父类名; 后面的变量名 要加&
    ren::$age=18;
    $bb=new china();
    $bb->say()
    
    static 例题 注意 注解
    

      

    2.

    抽象类:

    抽象类 不能被实例化

    为了作为父类使用(让子类来继承)  

    在类前 加一关键字  abstruct  就变成一个抽象 类

    抽象类  赋值普通 类赋值一样   只需要 对子类初始化  在子类里面赋值(因为子类可以继承父类的一切)

      (子类对父类的方法 进行重写 )

    (return)

    扩展性好

    abstract class YunSuan
    {
        public $a;
        public $b;
        
        function Suan()
        {
        }
    }
    
    class Jia extends YunSuan
    {
        function Suan()
        {
            return $this->a+$this->b;
        }
    }
    
    class Jian extends YunSuan
    {
        function Suan()
        {
            return $this->a-$this->b;
        }
    }
    
    class Cheng extends YunSuan
    {
        function Suan()
        {
            return $this->a*$this->b;
        }    
    }
    
    $jia = new Cheng();
    $jia->a=10;
    $jia->b=5;
    echo $jia->Suan();
    

      

    3.接口:

    关键词: interface        impliments

    接口: 极度抽象的类

    接口里面方法  没有函数体 只声明函数名

    接口定义 (命名 以I 开头)

    接口 是作为父类存在的  接口里面出现的方法(控制子类必须实现)

    每个子类里面必须实现(实现所有 内容少一个则报错)  (必须写函数名+函数体)

    接口相当于  目录(公司规范)

    interface IUSB
    {    
        function Read(); //接口里面只声明函数名
        function Write(); 
    }
    
    class ShuBiao implements IUSB
    {
        function Read()
        {
            echo "鼠标插上了";
        }
        function Write()
        {
            echo "给鼠标传了数据";
        }
    }
    
    $s = new ShuBiao();
    $s->Read();
    

      

  • 相关阅读:
    HDU 5912 Fraction (模拟)
    CodeForces 722C Destroying Array (并查集)
    CodeForces 722B Verse Pattern (水题)
    CodeForces 722A Broken Clock (水题)
    CodeForces 723D Lakes in Berland (dfs搜索)
    CodeForces 723C Polycarp at the Radio (题意题+暴力)
    CodeForces 723B Text Document Analysis (水题模拟)
    CodeForces 723A The New Year: Meeting Friends (水题)
    hdu 1258
    hdu 2266 dfs+1258
  • 原文地址:https://www.cnblogs.com/hao0/p/6564114.html
Copyright © 2011-2022 走看看