Welcome 微信登录

首页 / 网页编程 / PHP / php抽象类

php抽象类2016-12-27 本站 guaitu为什么需要设计抽象类?

在实际开发中,可能有这样一种类:是其它类的父类,但其本身并不需要实例化,主要用途是用于让子类来继承。这样可以达到代码复用的目的,同时有利于项目设计者来设计类。

1、抽象类的格式

abstract class 类名{

abstract 修饰符 function 函数名(参数列表);

}

<?php
abstract class Animal{
public $name;
protected $age;
//这个方法没有方法体,主要是为了让子类去实现
abstract public function cry();
}
class Cat extends Animal{
public function cry(){
echo "猫正在叫!";
}
}
$cat1=new Cat();
$cat1->cry();
?>
2、用abstract关键字来修饰一个类,这个类就是抽象类;用abstract关键字来修饰一个方法,这个方法就是抽象方法,该方法就不能有方法体。

3、抽象类不能被实例化

4、抽象类不一定要包含abstract方法,即,抽象类可以没有abstract方法。

5、一旦类包含了abstract方法,则这个类必须声明为abstract

6、抽象方法不能有函数体

7、抽象类可以没有抽象方法,同时可以有实现了的方法

<?php
abstract class Animal{
public $name="www.bianceng.cn";
protected $age;
//这个方法没有方法体,主要是为了让子类去实现
abstract public function cry();
//抽象类中实现了的方法
public function getName(){
return $this->name;
}
}
class Cat extends Animal{
public function cry(){
echo "猫正在叫!";
}
}
$cat1=new Cat();
$cat1->cry();
echo "<br />".$cat1->getName();
?>
8、如果一个类继承了某个抽象类,则它必须实现该抽象类的所有抽象方法,除非它自己也声明为抽象类。

<?php
//这是一个抽象类
abstract class A{
abstract function test();
}
class B extends A{
function test(){ //此方法如果不实现,将会报错
echo "www.bianceng.cn";
}
}
echo "good";
?>
URL: http://www.bianceng.cn/webkf/PHP/201612/50479.htm