zoukankan      html  css  js  c++  java
  • PHP 面向对象的特性 抽象类和接口

    PHP 面向对象的特性 抽象类和接口

    先看下普通的类的实现和重写 

    <?php
    header("Content-type:text/html;charset=utf-8");
    
    class P
    {
        public $age;
        public $name = "我叫张三";
        public function __construct()
        {
            $this->age = '初始化';
        }
        public function action()
        {
            return '我要吃饭';
        }
    
    }
    
    class C extends P
    {
        public $age;
        public function __construct()
        {
    
            $this->age = '重新初始化';
    
            //如果想继续用父类的构造函数 不重写
            // parent::__construct();
        }
    
        public $name = "其实我是李四";
        public function action()
        {
            return '其实我要睡觉了';
        }
    
    }
    
    
    
    
    $o = new P;
    
    echo $o->age;
    echo '</br>';
    echo $o->name;
    echo '</br>';
    echo $o->action();
    
    echo '</br>';
    echo '</br>';
    echo '</br>';
    
    $o = new C;
    
    echo $o->age;
    echo '</br>';
    echo $o->name;
    echo '</br>';
    echo $o->action();

    然后说下接口(作用就是 写的类必须实现 接口中的方法 其实就是实现类方法的规范)

    <?php
    header("Content-type:text/html;charset=utf-8");

    interface P
    {
    public function action();

    }

    class C implements P
    {
    public function action()
    {
    return '我要睡觉了';
    }

    }

    class A extends C
    {

    public function action()
    {
    return '其实我要睡觉了';
    }
    }

    $o = new C;

    echo $o->action();

    echo '</br>';
    echo '</br>';

    $o = new A;

    echo $o->action();

     抽象类 你可以把他当成个类使用(他的abstract方法必须实现 跟interface一样)

    <?php
    header("Content-type:text/html;charset=utf-8");
    
    abstract class P
    {
        abstract public function action();
        public function action11()
        {
            return '1111111';
        }
    }
    class C extends P
    {
        public function action()
        {
            return '啊啊啊啊';
        }
        public function action11()
        {
            return '3333333333';
        }
    
    }
    
    $o = new C;
    
    echo $o->action11();
    
    echo '</br>';
    echo '</br>';

     ps:抽象类和接口都不能直接实例化  不用多继承的情况下 抽象类比较好用

  • 相关阅读:
    form表单重置、清空方法记录
    window location assign的使用
    简单易用的拾色器推荐
    display属性常用的四个值:block、inline、inline-block、none
    idea如何配置外部电脑访问本地项目
    Unity 2D相机公式换算(从其他博客上抄的)
    关于游戏逻辑模式的观点----谁调用谁
    Unity 角色场景传送功能
    Unity关于方法事件生命周期官方文档
    关于Unity物理事件的执行顺序的最新理解
  • 原文地址:https://www.cnblogs.com/newmiracle/p/13048161.html
Copyright © 2011-2022 走看看