在php中,我有两个类:
Class A
{
public function a1()
{
...
}
public function a2()
{
...
}
more methods.
}
Class B
{
private $b=new A();
}
我希望B拥有类A的所有方法。但我不想重写a1(),a2()。。。B类。这太麻烦了。有更好的方法吗
谢谢
我很抱歉。我认为我的示例代码不太正确。以下是新的B类:
class B
{
private static $a=new A();
}
我希望B的多个实例共享一个a的实例。
所以我认为继承是不够的
谢谢。
定义类时可以使用extends
。
<?php
Class A
{
public function a1()
{
...
}
public function a2()
{
...
}
more methods.
}
Class B extends A
{
public function a3() {
$this->a1();
$this->a2();
}
}
Class B extends A
{
}
这就是所谓的继承。类B将从其父类A继承所有公共和受保护的方法。
这是一个定义良好的编程实践,我建议您进一步研究它。有关php参考,请查看此处http://php.net/manual/en/language.oop5.inheritance.php
class B {
private $b
function __construct() {
$this->b = new A();
}
}
试试上面的
或
class B extends A {
}
您也可以签出以下内容:
- http://php.net/manual/en/keyword.extends.php
- http://php.net/manual/en/language.oop5.inheritance.php
- https://www.youtube.com/watch?v=ipp4WPDwwvk&list=PLfdtiltiRWF0RicJb20da8nCQ1jFvla