5、php抽象类

抽象类 abstract

通过abstract关键字定义抽象类,只要类中有一个抽象类方法,该类就必须定义为抽象类

抽象类不能直接被实例化,只相当于定义了调用的方式,并没有具体的实现
子类的继承的时候必须实现所有的抽象方法
子类在实现抽象方法的时候,可见性可以和父类相同或者宽松
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
header('content-type:text/html;charset=utf-8');
/*
通过abstract关键字定义抽象类,当类中至少有一个方法为抽象方法的时候,这个类就必须定义成抽象类
抽象类不能直接被实例化,只相当于定义了调用的方式,并没有具体的实现
子类的继承的时候必须实现所有的抽象方法
子类在实现抽象方法的时候,可见性可以和父类相同或者宽松
*/
abstract class Pet{
public $name;
abstract public function eat();
abstract public function sleep();
public function breath(){
echo '呼吸新鲜空气...<br/>';
}
}
class Cat extends Pet{
public function __construct($name){
$this->name=$name;
}
public function eat(){
echo $this->name.' is eating...<br/>';
}
public function sleep(){
echo $this->name.' is sleeping...<br/>';
}

}
class Dog extends Pet{
public function __construct($name){
$this->name=$name;
}
public function eat(){
echo $this->name.' is eating...<br/>';
}
public function sleep(){
echo $this->name.' is sleeping...<br/>';
}
}