问题标签 [extends]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2379 浏览

php - 使一个接口覆盖它从 PHP 中的另一个接口继承的方法

PHP中有没有一种方法可以覆盖扩展该接口的接口中的一个接口声明的方法?

这个例子:

我可能做错了什么,但这是我所拥有的:

通常在 PHP 中,当您扩展某些内容时,您可以覆盖其中包含的任何方法(对吗?)。但是,当一个接口扩展另一个接口时,它不会让您这样做。除非我想错了……当我实现 iShipper 接口时,我不必让 Shipper 对象扩展 Vendor 对象(实现 iVendor 接口)。我只是说:

并使 FedEx 实现 iVendor 和 iShipper 的所有方法。但是,我需要__constructiVendor 和 iShipper 中的功能是独一无二的。我知道我可以取出$shipment = null,但是创建 Shippers 就不那么方便了(只需在实例化时传入 vendor_no 和货件)。

任何人都知道如何使这项工作?我的后备方案是在实例化后必须通过调用$shipper->setShipment($shipment);Shipper 来设置发货,但我希望有一种方法可以绕过必须这样做......

对好奇的人进行更多解释:
FedEx 对象具有访问 FedEx 站点(使用 cURL)并获取相关货件的估计值的方法。我有一个 UPS 对象、一个 BAXGlobal 对象、一个 Conway 对象等。每个对象都有完全不同的方法来实际获取运费估算,但系统需要知道的是它们是“托运人”,并且列出的方法接口可以在它们上调用(因此它可以完全一样地对待它们,并在“托运人”数组中循环遍历它们,调用getTransitX()以找到货物的最佳托运人)。

虽然每个“托运人”也是一个“供应商”,并且在系统的其他部分(获取和放入数据库等)中都被视为这样。我们的数据设计是一堆废话,所以联邦快递与像这样的公司一起存储“供应商”表中的 Dunder Mifflin,这意味着它可以拥有所有其他供应商的所有属性,但需要 iShipper 提供的额外属性和方法)。

0 投票
20 回答
285129 浏览

php - 我可以在 PHP 中使用多个类来扩展一个类吗?

如果我有几个具有我需要的功能但想单独存储以进行组织的类,我可以扩展一个类以同时具有这两个功能吗?

IEclass a extends b extends c

编辑:我知道如何一次扩展一个类,但我正在寻找一种方法来使用多个基类立即扩展一个类 - AFAIK 你不能在 PHP 中做到这一点,但应该有办法绕过它而不诉诸于class c extends b,class b extends a

0 投票
5 回答
32683 浏览

php - 在 PHP 的扩展类中使用父变量

我有 2 个课程,主要课程和扩展课程。我需要在扩展类中使用主变量。

我谁能做到?

无效例如:

我需要一些更透明和更有效的解决方案:)

0 投票
10 回答
2089 浏览

java - 为什么要避免使用 final 关键字?

在 java 中,是否有允许扩展非抽象类的情况?

当有类层次结构时,它似乎总是指示错误的代码。你同意吗,为什么/为什么不同意?

0 投票
3 回答
1683 浏览

java - 如何参数化扩展集合

我一直在尝试扩展 ArrayList 类,但没有取得多大成功。我想扩展它,并能够对其进行参数化。

所以通常你有类似的东西

我想

简单地扩展 ArrayList 是行不通的。

当我尝试使用它时,我得到了错误

MyList 类型不是通用的;它不能用参数 <SomeObject> 参数化

我已经尝试过

没有成功,如果我使用类名后面的子对象,它似乎可以工作,但由于某种原因隐藏了子对象类中的方法。

任何关于如何正确工作的想法或建议都值得赞赏。

0 投票
3 回答
3605 浏览

java - 无法对泛型子类 (Java) 进行静态引用

我有以下代码:

此代码输出以下内容:

我的问题是:为什么 T.getName() 不返回 SubClass.getName() 的值?毕竟,我指定了 T == SubClass。还是静态函数调用对泛型引用无效?

提前非常感谢!

0 投票
4 回答
24458 浏览

java - 在 Java 中扩展另一个类的类中有 2 个同名变量

以下是我的项目代码的一部分:

我很快意识到这样做会在 Body 类中创建两个名为 x 的变量,并在 Body 中创建另外两个名为 y 的变量。这怎么可能,为什么 Java 甚至允许它?

我认为这是类 Body 的正确代码:

谢谢你的时间

0 投票
4 回答
4158 浏览

php - 扩展一个类和在 PHP 中包含它有什么区别?

有人可以向我解释一下有什么区别吗

是?

扩展类与包含 .php 文件有哪些优点/缺点?

0 投票
3 回答
751 浏览

php - 在扩展类中使用父变量

我有三个类 MainClass、Member 和 Project。Member 和 Project 扩展了 MainClass。

首先我创建一个 MainClass 对象,然后创建一个 Member 对象并执行函数 setMember:

当 $member 变量设置为当前成员时,我想在我的 Project 类中使用这个变量,但我无法让它工作:s

我需要会员的身份证,所以理论上有两种可能性:

或者

第一个,$this->member->id,结果为 NULL

第二个,$this->member->getId(),给了我这个错误:

在...中的非对象上调用成员函数 getId()

这是我的课(我把大部分课都去掉了)

0 投票
4 回答
7926 浏览

php - 在 PHP 中,您可以将一个类扩展为相同的名称吗?

我试图找出天气我能不能做到这一点。我有一个名为模板的类。我想在另一个文件中扩展该类的功能,但我不想更改名称。

我是否将其声明为

还是我就这样声明?