我是面向对象的php的新手。如果在HumanClass的test()方法中没有函数,我是否应该将它们声明为抽象函数?
<?php
class HumanClass
{
private $legs;
private $hands;
public function __construct($legs, $hands)
{
$this->legs = $legs;
$this->hands = $hands;
}
public function testing()
{
}
}
class StudentClass extends HumanClass
{
private $books;
public function __construct($legs, $hands, $books)
{
parent::__construct($legs, $hands);
$this->books = $books;
}
public function testing()
{
echo "StudentClass called.";
}
}
function callClass(HumanClass $c)
{
$c->testing();
}
$example = new StudentClass(4, 2, 1);
callClass($a);
?>
可能有这样的事情吗?
echo $a->testing();
而不是使用其他方法来调用testing()。
给定您提供的代码,除了仅仅存在您可以尝试的功能之外,还不清楚test()函数应该做什么。答案也将确定基类中的版本是否应保留为空函数。
还有其他选择,例如,派生类首先调用基类(扩展),或者基类不包含抽象或具体的此类函数,而仅包含派生类。选择哪一个取决于有经验的程序员来决定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句