现实生活中抽象的意思 我的理解就是一个事物大的描述,并不十分具体的描述,只是把事物的某些共性给出来。
那么在PHP中也是一样的,把一个类进行抽象,可以指明某个类的一般行为,这个类可以是一个模板,而继承他的子类中的方法就要去 具体的实现模板的相应功能(注意这里是模板的全部功能)。
下面是我总结的一些注意点:
1.定义的方法,子类必须完全实现这个抽象中所有的方法。
2.不能从抽象类创建对象,对象要让继承他的子类来创建的,扩展就是他的子类干的活。
3.抽象类具有抽象方法,方法中没有大括号,因为他并不给出具体的方法体。(像接口一样)
4.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义。
5.抽象类的方法可以有参数,也可以为空如果抽象方法有参数,那么子类的实现也必须有相同的参数个数。
那么在PHP中也是一样的,把一个类进行抽象,可以指明某个类的一般行为,这个类可以是一个模板,而继承他的子类中的方法就要去 具体的实现模板的相应功能(注意这里是模板的全部功能)。
下面是我总结的一些注意点:
1.定义的方法,子类必须完全实现这个抽象中所有的方法。
2.不能从抽象类创建对象,对象要让继承他的子类来创建的,扩展就是他的子类干的活。
3.抽象类具有抽象方法,方法中没有大括号,因为他并不给出具体的方法体。(像接口一样)
4.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义。
5.抽象类的方法可以有参数,也可以为空如果抽象方法有参数,那么子类的实现也必须有相同的参数个数。
==============》废话不多说,简单的抽象类椭圆面积,代码走起《============
<?php
header('content-type:text/html;charset=utf-8');
abstract class shape{ //计算椭圆面积的抽象类
abstract protected function area();
}
class ellipse extends shape{
private $a;
private $b;
const PI=3.14;
function __construct($a=0,$b=0){
$this->a=$a;
$this->b=$b;
}
function area(){
echo ($this->b*2*(self::PI))+($this->a-$this->b)*4;//椭圆面积计算公式
}
}
$shape_ellipse=new ellipse(15,10);
$shape_ellipse->area();
?>