php中的抽象类和抽象方法
PHP中的抽象类不能实例化,不能使用new,抽象类使用abstract关键字描述。一个类中只要有一个抽象方法,那么这个类就是抽象类,抽象类中的抽象方法,必须在子类中全部实现
<?php
namespace _0802;
// 抽象类
class Person1
{
protected $name;
public function __construct($name = 'peter zhu')
{
$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 = 'peter zhu')
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
// 这个方法没有实现的过程, 变成了一个抽象方法
abstract public function setName($value);
}
// 子类来扩展/ 实现一个抽象类
class Sub extends Person2
{
// 构造方法不会自动继承
public function __construct($name = 'peter zhu')
{
parent::__construct($name);
}
// 在子类中将抽象类中的一个抽象方法setName()具体实现一下
public function setName($value)
{
$this->name = $value;
}
}
$sub = new Sub('猪哥');
echo 'php中文网的创始人是: ' . $sub->getName(), '<br>';
// 调用子类中实现的抽象方法setName()
$sub->setName('朱老师');
echo 'php中文网的讲师: ' . $sub->getName(), '<br>';

浙公网安备 33010602011771号