php抽象类与接口

一、为什么设计抽象类这个技术?
在实际开发中,我们可能有这样一种类,是其他类的父亲,但他本身并不需要实例化,主要用途是用于让子类来继承,这样可以达到代码复用,同时利于项目设计者、设计类。

abstract class Animal {
    public $name;
    protected $age;
    //这个方法没有方法体,主要是为了让子类去实现
    abstract public function cry();
}

class Cat extends Animal {
    public function cry() {
        echo "猫猫叫";
    }
}

$cat = new Cat();
$cat -> cry();
抽象类.png
抽象类细节.png
抽象类注意事项.png

二、接口:
1、基本语法:
interface 接口名 {
//属性
//方法
}
2、接口的方法不能有方法体。
3、如何去实现方法?
class 类名 implements 接口名1,接口名2 {
}
4、接口的作用是:声明一些方法,供其他类来实现,接口还体现高内聚低耦合的特点;

接口的特点.png

5、什么情况下可以考虑使用接口?
(1)定规范;
(2)定下规范让别的开发者来实现。

6、当多个类,他们之间是平级的关系,这些类都会去实现某个功能,只是实现的方式不一样。

多个类实现某个功能关系.png
<?php

    //使用程序模拟现实情况
    //定义规范(方法/属性),首字母小写
    interface iUsb {

        public function start();
        public function stop();
    }

    //编写手机类,实现接口
    //1、当一个类实现某个接口,则要求该类必须实现这个接口的所有的方法
    class Phone implements iUsb {
        public function start() {
            echo "手机开始工作了<br/>";
        }

        public function stop() {
            echo "手机停止工作了<br/>";
        }
    }

    //2、编写相机类实现
    Class Camera implements iUsb {
        public function start() {
            echo "相机开始工作了<br/>";
        }

        public function stop() {
            echo "相机停止工作了<br/>";
        }
    }

    $phone = new Phone();
    $phone -> start();
    $phone -> stop();

    $camera = new Camera();
    $camera -> start();
    $camera -> stop();
?>

接口的细节:


接口细节.png

常量前面不能加$,在接口内定义常量并得出时可以使用 接口名::常量名;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,641评论 25 708
  • 《天道》改编自豆豆的《遥远的救世主》,2005年作家出版社出版的长篇小说。讲述的是效力于德国一家私募公司的商...
    V红旗飘飘阅读 2,998评论 0 2
  • 儿童节快乐啊~哈哈
    毛毛1993阅读 230评论 1 18
  • 紧密的开锣声穿过繁忙的街面的与刚被雨打湿青板石撞击形成回音,惊动人肚子里的蛔虫,催促着那听戏人的脚步。阿婆手牵着孙...
    旧墙上的藤阅读 264评论 0 0