PHP定义抽象方法/抽象类

抽象类简介

abstract:定义抽象方法/抽象类
类中只要有一个抽象方法,该类就应该声明为抽象类
抽象类只能被继承,不能实例化,并且抽象方法必须在子类实现
实现抽象方法的子类方法可见性不能低于抽象方法原定义
抽象方法是public,子类方法只能是public
抽象方法是protected,子类方法只能是protected/public
一个抽象类必须被扩展为一个特定的类,我们才能创造类实例,使用类中功能

抽象类

<?php
namespace _demo;

//传统类

class Person1
{
    protected $name;
//    构造方法
    public function __construct($name='小明')
    {
        $this->name = $name;
    }
//    获取器
    public function getName()
    {
        return $this->name;
    }
//    设置器
    public function setName($value)
    {
        $this->name = $value;
    }
}

//实例化
$person = new Person1();
echo '我的姓名是:' . $person->getName(),'<br>';
$person->setName('小李');
echo '我的姓名是:' . $person->getName(),'<br>';
echo '<hr>';


//创建出一个抽象类
//1。里面有一些不确定的方法和实现过程,不能实例化,不能new
//2。类中的抽象方法,必须在子类中全部实现
abstract class Person2
{
    protected $name;

    public function __construct($name='小王')
    {
        $this->name = $name;
    }

    public function getName()
    {
        return $this->name;
    }

//    这个方法没有实现的过程,变成一个抽象方法
    abstract public function setName($value);

}

//子类来扩展/实现一个抽象类
class Sub extends Person2
{
//    构造方法不会自动继承,所以呢我们要引入下父类的构造方法
    public function __construct($name = '小王')
    {
        parent::__construct($name);
    }

    //在子类中将抽象类中的一个抽象方法setName()具体实现一下
    public function setName($value)
    {
        $this->name = $value;
    }
}

$sub = new Sub('帅哥');

echo '我是:'.$sub->getName() ,'<br>';

$sub->setName('大帅哥');

echo '我是:'.$sub->getName(),'<br>';

完事…在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值