问题标签 [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.
c++ - 有没有一种简单的方法来使用基类的变量?
当您有派生类时,是否有一种更简单的方法可以从以下方法中引用变量:
编辑
碰巧,我找到了一个使用函数来解释此问题的页面:
Template-Derived-Classes Errors。显然,在使用模板类时会有所不同。
vb.net - 从子实例调用被覆盖的基类方法
考虑以下代码:
如何将 Dog 的实例转换/ctype 为 Animal 并调用 Animal.Speak?
php - 管理一个应用的多个专业版本的最佳实践
我有一个有很多面孔的 Web 应用程序,到目前为止,我已经通过创建主题来实现它。主题是一组要与通用后端一起使用的 html、css 和图像。
事情是这样布置的:
Web 应用程序的每个实例都有一个配置文件,说明应该使用哪个主题。例子:
现在新的业务规则要求我对某些主题进行更改,而这些主题无法通过简单地更改 html/css/images 并需要更改后端来实现。在某些情况下,这些更改需要应用于一组主题。
我想知道如何最好地将它放在磁盘上,以及如何在代码中处理它。我敢肯定,其他人一定遇到了这个问题。
一个想法是:
然后让我的通用代码设置首先搜索的include_path
内容code/theme1
,然后code/common
.
然后,如果我想专门说LogoutPage
类theme2
,我可以简单地将页面从复制code/common
到相同的路径下code/theme2
,它会选择专门的版本。
这个想法的一个问题是会有多个具有相同名称的类。尽管理论上它们永远不会包含在同一个执行中,但我无法扩展原始基类。
那么,如果我要为基类起一个唯一的名称呢?例如Theme1LogoutPage extends LogoutPage
。我可以预见的一个问题是当一些通用代码(比如 Dispatcher)引用LogoutPage
. 我可以向调度程序添加条件,但我想知道是否有更透明的方式来处理这个问题?
我能想到的另一个选择是为每个主题维护单独的分支,但我认为这可能需要大量工作。
最后要考虑的一件事是,功能可能源自一个主题,然后需要合并到公共代码库中。
非常感谢任何输入。如果有什么不同,那就是 LAMP 环境。
c++ - c++类朋友
我正在尝试编译这样的代码:
但 get 'CCube::Position' 在函数 main() 中无法访问 3 次。我希望在 CCube 之外声明 CPosition 类,以便将来可以在新类中使用它,例如 CBall :) 但是如何在不使用继承的情况下使其工作。是否可以 :)?
问候,PK
c++ - 在 C++ 中寻找比虚拟继承更好的方法
好的,我在 C++ 中有一个有点复杂的系统。简而言之,我需要向第三方抽象基类添加一个方法。第三方还提供了大量也需要新功能的派生类。
我正在使用一个提供标准 Shape 接口以及一些常见形状的库。
现在,这是我的问题。我希望 Shape 类也包含一个 GetArea() 函数。所以看起来我应该做一个:
然后我去做一个继承自ImprovedShape 和Square 的ImprovedSquare。好吧,正如你所看到的,我现在已经创建了可怕的钻石继承问题。如果第三方库对其 Square、Circle 等使用虚拟继承,这将很容易解决。但是,让他们这样做并不是一个合理的选择。
那么,当您需要向库中定义的接口添加一点功能时,您会怎么做?有好的答案吗?
谢谢!
oracle - 无论如何在 Oracle 10gR2 中声明一个没有属性的 TYPE
我想创建一个只有方法的基础对象。该对象将是QUEUABLE_OBJECT_TYPE
并且它将具有一个ENQUEUE
方法。这些消息(属性)的有效负载将通过子类型化此对象来添加。
我收到一个错误,听起来好像您不能:
PLS-00589:在对象类型“QUEUABLE_OBJECT_TYPE”中找不到属性
有谁知道解决此错误的方法?或者是否可以在子类型中隐藏超类型的这个属性?
要么是一个可以接受的答案。
c# - 为什么默认情况下不密封类?
我只是想知道,既然密封关键字的存在表明它是类作者的决定,是否允许其他类从它继承,为什么默认情况下不密封类,用一些关键字将它们显式标记为可扩展?
我知道这有些不同,但访问修饰符以这种方式工作。默认设置是限制性的,只有插入关键字才能授予更全面的访问权限。
不过,我很有可能没有正确考虑到这一点,所以请保持人道!
c# - 为什么 AC# 类可以隐式和显式地从一个接口继承?
今天碰巧发现一个C#类可以隐式和显式地继承一个接口。这让我很惊讶。如果 C# 以这种方式工作,那么一个实例在以不同方式引用时可能表现不同。
上面的代码运行并输出
我相信 C# 的这种设计会使行为不一致。一个 C# 类可能必须以隐式或显式方式从一个接口继承,但不能同时继承。
为什么 C# 以这种方式设计有什么原因吗?
c++ - 如何从不同头文件中的类继承?
我有依赖问题。我有两个班级:Graphic
和Image
。每个都有自己的 .cpp 和 .h 文件。我将它们声明如下:
Graphic.h
:
Image.h
:
当我尝试编译时,出现以下错误:
如果我删除Graphic
from的前向声明,Image.h
则会收到以下错误: