PHP 抽象方法和抽象类

猫斯基 27 2014-01-26

抽象方法

一个方法如果没有方法体(即:方法不使用“{}”,直接使用分号结束),则这个方法就是抽象方法。

如果是抽象方法,则必须使用抽象关键字abstract来修饰。

【作用】:

PHP抽象方法就是一个规定,规定了子类必须有这个方法的实现,即:功能交给子类实现。

抽象类

如果一个类中有一个方法是抽象方法,则这个类就是抽象类。

如果要声明一个抽象类,则必须使用抽象关键字abstract来修饰。

【作用】:

抽象类就是要求子类的结构,就是一个规范。

注意事项

1、只要使用abstract修饰的类就是抽象类。

2、抽象类是一种特殊的类。特殊在抽象类中可以有抽象方法,也可以没有抽象方法。

3、抽象类不能实例化对象,即:不能创建对象。

4、除了在抽象类中可以有抽象方法、不能实例化对象之外,和正常的类完全一样。

5、如果有抽象类,则必须写这个抽象类的子类,将抽象类中的全部抽象方法覆盖,即加上方法体,才能实例化对象。

6、如果写了抽象类的子类,但没有把全部的抽象方法覆盖,则该子类就必须加上abstract关键字,成为子抽象类,不能实例化对象。

/*
 猫斯基 www.maosiji.com
 */
abstract class Person {
	// 抽象方法
	abstract function say();
	abstract function eat();
	function run() {
		echo 'ppppppp
'; } } class StudentCn extends Person { function say() { echo '我是中国人,我说中文。
'; } function eat() { echo '我用筷子吃饭。
'; } } class StudentEn extends Person { function say() { echo 'I am English, I speak in English.
'; } function eat() { echo 'I eat with a knife and a fork.
'; } } $s1 = new StudentCn(); $s1->say(); /* 打印结果: 我是中国人,我说中文。 */

本文由 猫斯基 原创发布。

著作权均归用户本人所有。独家文章转载,请联系本站管理员。获得授权后,须注明本文地址! 本文地址:https://www.maosiji.com/2566.html