• 抽象


    先来讲静态

    静态的的分类和区别

    1、普通成员

    普通成员是属于对象的

    2、静态成员

    静态成员是属于类的

    加上关键字static可以变成静态的

    调用类中的变量,需要双冒号::

    静态的不需要造新对象

    普通方法里面可以调用静态成员

    静态方法里面不能调用普通方法

    self关键字在类里面代表该类,静态成员用的

    例:

    <?php
    
    class Ren
    {
        public $name="张三";
        public static $zhongzu; //静态成员
        
        //普通方法
        function Say()
        {
            echo self::$zhongzu."你好";     可以调用静态成员,关键字self
        }
        //静态方法
        static function Run()
        {
            echo $this->name;
        }
    }
    
    Ren::$zhongzu = "战斗民族";      静态调用类中变量
    Ren::Run();
    
    $r = new Ren();                 
    $r->Say();
    ?>

    抽象类:

    比类更加抽象

    不能被实例化,作为父类使用

    关键字abstract写在类名前面

    extends是继承的意思

    <?php
    abstract class DongWu            加关键字,就是一个抽象类
    {
        public $name;
        public $age;
        
        function Run()
        {
            echo "跑";
        }
    }
    
    class Dog extends DongWu           子类继承父类的
    {
        
    }
    
    $d = new Dog();
    $d->Run();
    以运算为例:
    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();
    
    ?>

    接口:

    极度抽象的类

    定义方式不用class  用imterface

    命名规则一般用I开头

    接口里面只声明函数名,没有函数体,不要写花括号

    继承接口的关键字不是用extends,要用implements

    接口里面的方法主要用来控制子类,必须实现该方法

    例:

    <?php
    interface IUSB
    {    
        function Read(); //接口里面只声明函数名
        function Write(); 
    }
    
    class ShuBiao implements IUSB
    {
        function Read()
        {
            echo "鼠标插上了";
        }
        function Write()
        {
            echo "给鼠标传了数据";
        }
    }
    
    $s = new ShuBiao();
    $s->Read();
    
    
    //接口
    
    //1.面向对象 interface
    //2.API
    
    ?>
  • 相关阅读:
    [poj3974] Palindrome 解题报告 (hashmanacher)
    SQL Android
    SharedPreferences Android
    本地广播 localBroadcastManager Android
    RecyclerView Android
    自定义ListView Android
    布局 Android
    传值 Android
    活动的生命周期 Android
    CodeForces 907F Power Tower(扩展欧拉定理)
  • 原文地址:https://www.cnblogs.com/qishuang/p/6183469.html
Copyright © 2020-2023  润新知