有太多的子类,如果它们包含'例如,我想处理它们。 getName()函数并在超级类中覆盖它们。并希望打印出一个'对于他们每个人。我该如何实现呢?
<?php
class SuperClass{
public function getName(){
echo 'a';
}
}
class ChildClass extends SuperClass{
public function getName(){
echo 'b';
}
}
class SecondChildClass extends SuperClass{
public function getName(){
echo 'c';
}
}
$a = new ChildClass();
$a->getName(); //prints a
$b = new SecondChildClass();
$b->getName(); //prints a
?>
答案 0 :(得分:4)
对于您的示例,要正常工作,只需从SuperClass中删除getName()函数。如果您仍想偶尔调用SuperClass getName,请尝试重载SuperClass getName函数。
的getName($标志)
这样,如果你想对SuperClass变量进行分类,你就会传递它,否则它会调用子类。
<?php
class SuperClass{
public function getName($flag){
echo 'a';
}
}
class ChildClass extends SuperClass{
public function getName(){
echo 'b';
}
}
class SecondChildClass extends SuperClass{
public function getName(){
echo 'c';
}
}
$a = new ChildClass();
$a->getName(); //prints b
$a->getName(true); //prints a
$b = new SecondChildClass();
$b->getName(); //prints c
$b->getName(true); //prints a
?>