如何访问同一父级的另一个子类中的子类的成员函数

时间:2019-11-22 14:17:35

标签: php oop

我有三个班级,分别是 A级 B级 C级

A类是父类,而B和C类是其子类。

在B类中有一个函数,我想在C类中访问该函数而不用B继承C类。

public class A {


}

class B extends A{

      public function hello (){
        return "Hello world";
      }
}

public class C extends A{

    public function world (){
        $this->hello();
    } 

} 

1 个答案:

答案 0 :(得分:0)

扩展@u_mulder的评论:这确实是不可能的,因为尽管B和C都源自同一类A,但它们是不同的类,就像自行车和汽车都是车辆一样。使用自行车时,不能仅仅因为它们都是车辆而就假定使用汽车的功能。

您需要回答的问题是class B中我需要的方法的功能是什么?它特定于class B吗?还是所有class A的实体?还是有所不同,它是否是一个单独的功能,但是只有class B才需要使用? 第一种情况的解决方案是将函数移至class B。在第二种情况下,您将函数移至类A。在第三种情况下,您将在单独的类中实现该函数,并将其注入class B中。

我建议您阅读SOLID原则和other principles of OOP设计