欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP的抽象类

程序员文章站 2022-03-29 17:33:11
...

这篇文章介绍的内容是关于PHP的抽象类,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

/*
抽象类的作用:

当接口用,当模板用
实现多态,生来就是当爸爸的
*/


// ===代码部分1===

// =用abstract写一个飞行器制造术= //

abstract class FlyIdea {    // 大力引擎
    public abstract function engine();    // 平衡舵
    public abstract function balance();

    /*
         注意:抽象方法中 不能有方法体
         下面这样写是错误的         public abstract function balance() {

         }
         报错如下:
         Fatal error: Abstract function FlyIdea::balance() cannot contain body
    */
}

/*
抽象类不能new 来实例化
$kongke = new FlyIdea();

报错如下:
Fatal error: Cannot instantiate abstract class FlyIdea
*/


// =用火箭解决发动机问题= //

abstract class Rocket extends FlyIdea {

    public function engine() {
        echo '点燃火药,失去平衡。<br >';
    }
}class Fly extends Rocket {
    public function engine() {
        echo '用力一扔<br >';
    }    public function balance() {
        echo '两个纸翼保持平衡~~~~~~';
    }    public function start() {
        $this->engine();        for($i=0;$i<10;$i++) {            $this->balance();            echo '平稳飞行<br >';
        }
    }
}$apache = new Fly();$apache->start();

/*
总结:

类前加 abstract 是抽象类
方法前加 abstract 是抽象方法

抽象类 不能 实例化
抽象方法 不能有 方法体

有抽象方法,则此类必是 抽象类
抽象类,内未必有抽象方法
*/


// ===代码部分2===

// =Facebook 多国语言欢迎页面= //

abstract class Welcome {
    public abstract function wel();}class china extends Welcome {
    public function wel() {
        echo '你好,非死不可<br >';
    }
}class english extends Welcome {
    public function wel() {
        echo 'hi,welcome<br >';
    }
}class japan extends Welcome {
    public function wel() {
        echo '搜达斯奈<br >';
    }
}$c = 'china'; //english //japan$wel = new $c();$wel->wel();

/*
以后新增了其他国家语言,
只要新增一个新的welcome类即可.
*/
PHP的抽象类

相关推荐:

php中抽象类和接口的区别

以上就是PHP的抽象类的详细内容,更多请关注其它相关文章!

相关标签: php 抽象