抽象类(abstract)

抽象类 abstract
  • 定义为抽象的类不能被实例化,任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的
  • 被定义为抽象的方法只是声明了其调用方式,不能定义其具体的功能实现
  • 继承一个抽象类,其子类必须定义抽象父类的所有抽象方法

抽象类的使用

  • 定义一个抽象类
abstract class Person
{
    protected $name;
    protected $country;

    function __construct($name = '', $country = '')
    {
        $this->name = $name;
        $this->country = $country;
    }

    abstract function eat();

    function run()
    {
        echo '用两条腿跑步' . PHP_EOL;
    }
}
  • 两个分别继承抽象类的类
class China extends Person
{
    function eat()
    {
        echo '在 ' . $this->country . ' 人们用筷子吃饭' . PHP_EOL;
    }
}
$china = new China('roy', '中国');
$china->run(); // 用两条腿跑步
$china->eat(); // 在 中国 人们用筷子吃饭
class American extends Person
{
    function eat()
    {
        echo '在 ' . $this->country . ' 人们用刀叉吃饭' . PHP_EOL;
    }
}
$american = new American('lily','美国');
$american->run();
$american->eat(); // 在 美国 人们用刀叉吃饭
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容