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

问题描述 投票:-1回答:1

我有三个类,可以说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();
    } 

} 
php oop
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.