php的多态
p适用平台PHP5.0以上。br / php因为其语法特点,不支持固定变量类型,它是根据上下文来确定当前的类型是什么,即,最后一次赋值是什么类型,现在它就是什么类型。也就不存在将子类
适用平台PHP5.0以上。
php因为其语法特点,不支持固定变量类型,它是根据上下文来确定当前的类型是什么,即,最后一次赋值是什么类型,现在它就是什么类型。也就不存在将子类变量赋给基类变量的说法了。但是php函数的参数,是可以规定类型的,如下面的show函数。如果传递一个不是此类型的参数,将会在运行时报错。废话不多说,看下面代码,大家可以运行运行试试。
欢迎板砖。
<?php
/**
* 虚基类
*/
abstract class T{
abstract function show();
}
/**
* 子类
*/
class T1 extends T {
public function show(){
echo "T1 from abstract class!<br/>";
}
public function show1(){
echo "T1 not from abstract class!<br/>";
}
}
/**
* 子类
*/
class T2 extends T {
public function show(){
echo "T2 from abstract class!<br/>";
}
public function show1(){
echo "T2 not from abstract class!<br/>";
}
}
class T3 {
public function show(){
echo "in T3!<br/>";
}
public function show1(){
echo "in T3!<br/>";
}
}
$t1 = new T1();
$t2 = new T2();
$t3 = new T3();
show($t1);
show($t2);
//报错,$t3不是T,所以被show函数调用的时候,会报类型不对的错误
//show($t3);
function show( T $t ){//注意参数的类型
$t->show();
$t->show1();
}
?>
- 上一篇:php+txt短网址压缩[自留]
- 下一篇:MySQL操作类
精彩图集
精彩文章






