PHP 抽象方法和抽象类

猫斯基  — PHP


抽象方法

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

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

【作用】:

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

抽象类

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

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

【作用】:

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

注意事项

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

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

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

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

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

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

/* 
 猫斯基 maosiji.com
 */
abstract class Person {
	
	// 抽象方法
	abstract function say();
	
	abstract function eat();
	
	function run() {
		echo 'ppppppp<br>';
	}
	
}

class StudentCn extends Person {
	
	function say() {
		echo '我是中国人,我说中文。<br>';
	}
	
	function eat() {
		echo '我用筷子吃饭。<br>';
	}
	
}

class StudentEn extends Person {
	
	function say() {
		echo 'I am English, I speak in English.<br>';
	}
	
	function eat() {
		echo 'I eat with a knife and a fork.<br>';
	}
	
}

$s1 = new StudentCn();
$s1->say();



/*
打印结果:
我是中国人,我说中文。
*/

阅读量:0 2021-02-03 22:44

返回顶部