博客列表 >PHP教学-接口与抽象类练习

PHP教学-接口与抽象类练习

果莫个人博客
果莫个人博客原创
2023年01月16日 22:58:47714浏览

抽象类
1,abstract定义抽象方法、抽象类
2,抽象类只能被继承,不能实例化,且抽象方法都必须在子类复写
3,类中只要有一个抽象方法,该类就必须声明为抽象类
4,实现抽象方法的子类方法可见性不能低于父抽象方法的可见性
5,抽象方法不能有方法体,不能有{}
6,在实际开发中,通常并不会直接使用一个父类/超类,而是在父类中定义一些方法声明
7,并且确信该方法肯定是会被子类重写的,父类中没必要实现,只要给一个方法编写规范即可
8,这个规范包括方法的名称,参数列表等,具体实现就全部交给子类去完成了
9,相当于公司的部门主管,接到老板的任务,只把属于自己的部分做了,其他部分,设置一个标准交给下属去完成
10,父类的构造方法可见性为protected时,子类不会自动继承, 必须手动重写构造方法,可以用parent::手动调用
接口
1,interface 指定某个类必须实现的方法,但不需要定义方法的具体实现过程
2,接口中仅允许出现方法和常量
3,接口方法的可见性必须是public,且方法体必须是空的
4,接口是类的代码模板,可以像类一样有父子继承关系,例如:父接口,子接口
5,implements 类实现接口的关键字
6,如果仅是部分实现接口中的方法,请用一个抽象类来实现他
7,接口中的方法,必须全是抽象方法
抽象类和接口的区别
抽象可以有普通方法,成员变量
接口不可以有普通方法,不可以有成员变量

抽象类练习

abstract class a{    public $name;    public $age;    public function __construct($name,$age)    {        $this->name =$name;        $this->age = $age;    }    abstract protected function getInfo();    abstract protected function getInfo2($name);    public function getInfo3()        {            return '<hr>getInfo3:'.$this->name;        }}class b extends a {    public function getInfo(){        return '<hr>getinfo:'.$this->name .'---'.$this->age;    }    public function getInfo2($name)    {        $this->name = $name;    }}$b = new b('rambo','18');echo $b->getInfo3();echo $b->getInfo();echo $b->getInfo2('ouyang');echo $b->getInfo3();

接口练习

interface v{    const country = '中国';    public function setFull($fuel);    public function setPurpose($purpose);}class Car implements v{    public $fuel;    public $purpose;    public function __construct($fuel='汽油',$purpose='家用')    {        $this->fuel = $fuel;        $this->purpose = $purpose;    }    public function setFull($fuel)    {        $this->fuel = $fuel;    }    public function setPurpose($purpose)    {       $this->purpose = $purpose;    }    public function getInfo(){        return $this->fuel . $this->purpose . '车';    }}$car = new Car();echo $car -> getInfo();echo '<hr>';$car ->setFull('新能源');$car ->setPurpose('出租');echo $car -> getInfo();
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议