abstract AND interface 基础

<?php 

    //到底应该用抽象类还是接口;
    //如果要继承多个方法规范,那就用接口;
    //如果你要共享一个方法体内容,那么就用抽象类;

/* abstract 抽象类
    不能多继承

    abstract class Computer {


        abstract public function _run();
        public function _run2(){
            echo '我是父类的普通方法2!!';
        }
    }

    class NoteComputer extends Computer {
        public function _run(){
            echo '我是子类方法!';
        }
    }

    $notecomputer = new NoteComputer();
    $notecomputer->_run();
    $notecomputer->_run2();
*/
/*interface
    成员字段必须是常量
    接口方法必须是抽象方法~ 并且不能写abstract
    子类继承接口的说法,叫做实现, 可以多实现

*/
    interface Computer {
        const NAME = '联想!!!';
    
        public function _run();
        public function _run2();

    }

    interface Computer2 {
        public function _run3();
    }

    class NoteComputer implements Computer,Computer2 {
        public function _run(){
            echo '我重写了run!';
        }
        public function _run2(){
            echo '我重写了run2!';
        }
        public function _run3(){
            echo '我重写了run3!';
        }
    }

    $notecomputer = new NoteComputer();
    $notecomputer->_run();
    $notecomputer->_run2();
    $notecomputer->_run3();
    echo NoteComputer::NAME;


    echo Computer::NAME;
?>
原文地址:https://www.cnblogs.com/oceanden/p/4006143.html