1、抽象类指的是包含抽象方法的类,而抽象方法是通过 abstract 关键字修饰的方法,抽象方法只是一个方法声明,不能有具体实现:
abstract public function drive();
2、抽象类本身不能被实例化,只能被子类继承,继承了抽象类的子类必须实现父类中的抽象方法,否则会报错。
你还可以从抽象父类继承正常的属性和方法:
<?php
abstract class Car
{
protected $brand;
/**
* Car constructor.
* @param $brand
*/
public function __construct($brand)
{
$this->brand = $brand;
}
abstract public function drive();
}
class LynkCo01 extends Car
{
public function __construct()
{
$this->brand = '领克01';
parent::__construct($this->brand);
}
public function drive()
{
echo "启动{$this->brand}汽车" . PHP_EOL;
}
}
class LynkCo03 extends Car
{
public function __construct()
{
$this->brand = '领克03';
parent::__construct($this->brand);
}
public function drive()
{
echo "提示:手动档需要踩离合器" . PHP_EOL;
echo "启动{$this->brand}汽车" . PHP_EOL;
}
}
接口
interface Fruit
{
public function color(); //继承接口的类,必须要实现的方法
}
class Apple implements Fruit
{
public $color;
public function __construct($color)
{
$this->color = $color;
}
public function color()
{
return $this->color;
}
}
-1.类中至少有一个抽象方法 -2.前面加abstract
-1.成员属性为常量const -2.前面不用加abstract -3.类中全部为抽象方法,接口抽象方法为public
-1.本身不能被实例化,必须继承或者引用 -2.抽象类的抽象方法和接口里的方法,都不能有方法体,且子类必须要实现
最新评论