abstract.php
<?php
//抽象更多的用在接口中
//抽象类其实就是子类的一个模板,抽象类不能够单独使用,不能够被实例化;必须通过子类来调用,可以看做子类的一个模板
//如果一个类中有抽象方法时,那么这个类必须声明抽象类
abstract class Demo//抽象方法不允许实例化,也就是说抽象方法不能够用它来创建对象
{
public $name;
//创建一个构造方法
public function __construct($name)
{
$this->name = $name;
}
//下面再创建两个方法,(抽象方法)
abstract public function hello();
abstract public function say();
//抽象类中还可以有普通方法
public function test()
{
return 'Demo::test()';
}
}
//抽象类其实就是子类的一个模板,抽象类不能够单独使用,不能够被实例化;必须通过子类来调用,可以看做子类的一个模板
class Demo1 extends Demo
{
//必须在子类中将抽象类中的全部抽象方法全部实现才可以,也就是说上面有两个抽象方法就要创建两个方法将它实现
public function hello()
{
return 'Hello '.$this->name;
}
public function say()
{
return '我的name是: '.$this->name;
}
}
//实例化(将实例化以后的对象保存到变量$obj中)
$obj = new Demo1('php');
//访问子类中hello方法
echo $obj->hello();//Hello php
echo '<hr>';
echo $obj->say();//我的name是: php
echo '<hr>';
echo $obj->test();//Demo::test()