问题标签 [inheritance]

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 回答
2816 浏览

c++ - 有没有一种简单的方法来使用基类的变量?

当您有派生类时,是否有一种更简单的方法可以从以下方法中引用变量:

编辑
碰巧,我找到了一个使用函数来解释此问题的页面: Template-Derived-Classes Errors。显然,在使用模板类时会有所不同。

0 投票
5 回答
34245 浏览

vb.net - 从子实例调用被覆盖的基类方法

考虑以下代码:

如何将 Dog 的实例转换/ctype 为 Animal 并调用 Animal.Speak?

0 投票
6 回答
247 浏览

php - 管理一个应用的多个专业版本的最佳实践

我有一个有很多面孔的 Web 应用程序,到目前为止,我已经通过创建主题来实现它。主题是一组要与通用后端一起使用的 html、css 和图像。

事情是这样布置的:

Web 应用程序的每个实例都有一个配置文件,说明应该使用哪个主题。例子:

现在新的业务规则要求我对某些主题进行更改,而这些主题无法通过简单地更改 html/css/images 并需要更改后端来实现。在某些情况下,这些更改需要应用于一组主题。

我想知道如何最好地将它放在磁盘上,以及如何在代码中处理它。我敢肯定,其他人一定遇到了这个问题。

一个想法是:

然后让我的通用代码设置首先搜索的include_path内容code/theme1,然后code/common.

然后,如果我想专门说LogoutPagetheme2,我可以简单地将页面从复制code/common到相同的路径下code/theme2,它会选择专门的版本。

这个想法的一个问题是会有多个具有相同名称的类。尽管理论上它们永远不会包含在同一个执行中,但我无法扩展原始基类。

那么,如果我要为基类起一个唯一的名称呢?例如Theme1LogoutPage extends LogoutPage。我可以预见的一个问题是当一些通用代码(比如 Dispatcher)引用LogoutPage. 我可以向调度程序添加条件,但我想知道是否有更透明的方式来处理这个问题?

我能想到的另一个选择是为每个主题维护单独的分支,但我认为这可能需要大量工作。

最后要考虑的一件事是,功能可能源自一个主题,然后需要合并到公共代码库中。

非常感谢任何输入。如果有什么不同,那就是 LAMP 环境。

0 投票
7 回答
2303 浏览

c++ - c++类朋友

我正在尝试编译这样的代码:

但 get 'CCube::Position' 在函数 main() 中无法访问 3 次。我希望在 CCube 之外声明 CPosition 类,以便将来可以在新类中使用它,例如 CBall :) 但是如何在不使用继承的情况下使其工作。是否可以 :)?

问候,PK

0 投票
2 回答
420 浏览

php - 使用多态性和工厂模式去除重复条件

0 投票
10 回答
1254 浏览

c++ - 在 C++ 中寻找比虚拟继承更好的方法

好的,我在 C++ 中有一个有点复杂的系统。简而言之,我需要向第三方抽象基类添加一个方法。第三方还提供了大量也需要新功能的派生类。

我正在使用一个提供标准 Shape 接口以及一些常见形状的库。

现在,这是我的问题。我希望 Shape 类也包含一个 GetArea() 函数。所以看起来我应该做一个:

然后我去做一个继承自ImprovedShape 和Square 的ImprovedSquare。好吧,正如你所看到的,我现在已经创建了可怕的钻石继承问题。如果第三方库对其 Square、Circle 等使用虚拟继承,这将很容易解决。但是,让他们这样做并不是一个合理的选择。

那么,当您需要向库中定义的接口添加一点功能时,您会怎么做?有好的答案吗?

谢谢!

0 投票
2 回答
893 浏览

oracle - 无论如何在 Oracle 10gR2 中声明一个没有属性的 TYPE

我想创建一个只有方法的基础对象。该对象将是QUEUABLE_OBJECT_TYPE并且它将具有一个ENQUEUE方法。这些消息(属性)的有效负载将通过子类型化此对象来添加。

我收到一个错误,听起来好像您不能:

PLS-00589:在对象类型“QUEUABLE_OBJECT_TYPE”中找不到属性

有谁知道解决此错误的方法?或者是否可以在子类型中隐藏超类型的这个属性?

要么是一个可以接受的答案。

0 投票
9 回答
3829 浏览

c# - 为什么默认情况下不密封类?

我只是想知道,既然密封关键字的存在表明它是类作者的决定,是否允许其他类从它继承,为什么默认情况下不密封类,用一些关键字将它们显式标记为可扩展?

我知道这有些不同,但访问修饰符以这种方式工作。默认设置是限制性的,只有插入关键字才能授予更全面的访问权限。

不过,我很有可能没有正确考虑到这一点,所以请保持人道!

0 投票
5 回答
2268 浏览

c# - 为什么 AC# 类可以隐式和显式地从一个接口继承?

今天碰巧发现一个C#类可以隐式和显式地继承一个接口。这让我很惊讶。如果 C# 以这种方式工作,那么一个实例在以不同方式引用时可能表现不同。

上面的代码运行并输出

我相信 C# 的这种设计会使行为不一致。一个 C# 类可能必须以隐式或显式方式从一个接口继承,但不能同时继承。

为什么 C# 以这种方式设计有什么原因吗?

0 投票
5 回答
18840 浏览

c++ - 如何从不同头文件中的类继承?

我有依赖问题。我有两个班级:GraphicImage。每个都有自己的 .cpp 和 .h 文件。我将它们声明如下:

Graphic.h

Image.h

p>

当我尝试编译时,出现以下错误:

如果我删除Graphicfrom的前向声明,Image.h则会收到以下错误: