之前一直對子類能否對靜態函數進行override,故寫了段測試代碼,代碼如下:
<?php
Class A
{
var $a='I/'m A';
function write()
{
echo 'I can be overriden!<br />';
}
static function no_write()
{
echo 'Can I be overriden?<br />';
}
}
Class B extends A
{
function write()
{
echo 'Override from A successfully!<br />';
}
static function no_write()
{
echo 'Can I override successful?<br />';
}
}
$a=new A;
$a->write();
$a->no_write();
$b=new B;
echo $b->a.'<br />'; //Attributes can be inherited
$b->write();
$b->no_write(); //static methods can be overriden
?>
運行結果如下:
I can be overriden!
Can I be overriden?
I'm A
Override from A successfully!
Can I override successful?
所以說,靜態函數在子類裏是可以被override的,但是在java裏就不太清楚了,準備自己再寫些代碼測試下。