所谓多态,指的是不同的对象,执行相同的方法,而又取得不同的结果。php同java一样是单继承,一个子类只能entends一个父类,多态一般用implements一个接口来实现。
如下代码:有两个用户对象,student和teacher,两个对象都有name()和age()方法。
/* * php实现多态的两种方式 */ //定义接口 interface base{ //获取name public function name(); //获取age public function age(); } //学生类 class student implements base{ public function name(){ echo "获取学生姓名<br>"; } public function age(){ echo "获取学生年龄<br>"; } } //老师类 class teacher implements base{ public function name(){ echo "获取老师姓名<br>"; } public function age(){ echo "获取老师年龄<br>"; } } //定义操作类 class get{ public function common_get_name($base){ $base->name(); } public function common_get_age($base){ $base->age(); } } //实例化操作类,相同的方法,传入不同的对象参数,取得不同的结果 $get = new get(); $get->common_get_name(new student()); $get->common_get_name(new teacher()); $get->common_get_age(new student()); $get->common_get_age(new teacher());
运行结果如下: