相关疑难解决方法(0)

15
推荐指数
1
解决办法
1万
查看次数

带接口的PHP多重继承

我试图理解使用接口如何给我多重继承,因为我一直在谷歌上搜索.

class A
{
 function do1(){}
 function do2(){}
 function do3(){}
}

class B extends A
{
 function do4(){}
 function do5(){}
 function do6(){}
}

class C extends B
{
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,类C具有来自类A和B的所有方法.但是,类B也具有类A的所有方法,这是不必要的.

我的搜索已经出现使用接口来解决这个问题,方法是将方法移动到类并创建接口,如下所示.

interface A
{
     function do1();
     function do2();
     function do3();
}

interface B
{
     function do4();
     function do5();
     function do6();
}

class C implements A, B
{
     function do1(){}
     function do2(){}
     function do3(){}
     function do4(){}
     function do5(){}
     function do6(){}
}
Run Code Online (Sandbox Code Playgroud)

我真的没有看到这是如何解决这个问题的,因为所有代码都在新类中.如果我只想最初使用类A,我将不得不创建一个实现接口A的新类,并将相同的代码复制到新类.

有什么我想念的吗?

php oop inheritance interface

15
推荐指数
4
解决办法
4万
查看次数

如何扩展多个实用程序类

这个问题有点针对PHP,但它可能也适用于其他语言.在PHP中,您只能扩展一个类.但是如果你需要更多课程呢?

假设我有以下课程:

class MyClass extends Observer, Logger, OtherUtilClass
Run Code Online (Sandbox Code Playgroud)

MyClass不能扩展多个类.但它需要成为观察者.它可能需要一些其他基类以及完全功能.对此最好的方法是什么?

php oop

10
推荐指数
2
解决办法
3万
查看次数

PHP:为什么不能扩展多个类?

当我想扩展两个父类时,我遇到了一种情况,但php不允许这样做.
为什么我不能extend超过一个类,但可以implement不止一个interface.扩展许多课程有什么问题?
在我得到解析错误之前,在我看来这很明显.
这是一种不好的做法吗?如果是这样,有哪些替代方案?
是否可以用其他语言?

php oop class

2
推荐指数
2
解决办法
3544
查看次数

标签 统计

oop ×4

php ×4

class ×1

inheritance ×1

interface ×1

multiple-inheritance ×1