我有三个类,可以说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();
}
}
扩展@u_mulder的评论:确实是不可能的,因为尽管B和C都源自同一个A类,但它们是不同的类,就像自行车和汽车都是车辆一样。在使用自行车时,不能仅仅因为它们都是车辆而就假定使用汽车的功能。
您需要回答的问题是class B
中需要的方法的功能是什么?它特定于class B
吗?还是class A
的所有实体?还是有所不同,它是否是一个单独的功能,但是只有class B
才需要使用?第一种情况的解决方案是将功能移至class B
。在第二种情况下,您将函数移至类A。在第三种情况下,您将在单独的类中实现该函数并将其注入class B
。
我建议您阅读SOLID原理和other principles of OOP设计