我正在学习OOP PHP的高级水平..(或者我想学习:))
This是我的代码。
摘录:
<?php
abstract class Karakter
{
abstract public function isim($name);
abstract public function yas($age);
public function yazdir()
{
print $this->isim() . " " . $this->yas();
}
}
class Insan extends Karakter
{
public $isim;
public $yas;
public function isim()
{
return "Bu adamın ismi: " . $this->isim;
}
public function yas()
{
return "Bu adamın yaşı: " . $this->yas;
}
}
当我运行此代码时,我无法获胜。我可以看到这个错误:
Fatal error: Declaration of Insan::isim() must be compatible with that of Karakter::isim() in C:\AppServ\www\OOP\1.php on line 26
答案 0 :(得分:7)
您已使用一个参数在抽象类中定义了函数isim
。
abstract public function isim($name);
为了在任何子类中正确实现此函数,必须使用一个参数覆盖该函数:
class Insan extends Karakter {
public function isim($name) {
[..]
}
...
}
答案 1 :(得分:2)
在抽象类中,您定义了isim()
以期望参数。但是在扩展课程中,你没有遵循这条规则。
这是定义:
abstract public function isim($name);
但是你这样扩展它,没有参数:
public function isim()