multiple-inheritance相关内容

抽象类和多重继承

我们可以通过抽象类来实现和接口一样的功能,那么为什么java不允许下面的代码呢? 抽象类动物{公共抽象无效运行();}抽象类 Animals1{公共抽象无效 run1();}类 Dog 扩展了 Animal,Animals1{public void run() {System.out.println("运行方法");}public void run1() {System.out.println( ..
发布时间:2021-11-25 09:54:10 Java开发

python中的抽象类+mixin+多重继承

所以,我认为代码可能比文字更能解释我想要做的事情,所以这里是: 导入 abc类 foo(对象):__元类__ = abc.ABCMeta@abc.abstractmethod定义栏(自我):经过类 bar_for_foo_mixin(object):定义栏(自我):打印“这应该满足抽象方法要求"类 myfoo(foo, bar_for_foo_mixin):def __init__(self): ..
发布时间:2021-11-25 09:43:18 Python

“进口"从基类定义一个函数来实现抽象接口(C++ 中的多重继承)

假设我们有一个继承自两个基类的类(多重继承).基class A是抽象的,声明了一个纯虚函数foo,另一个基class B声明并实现了一个函数foo完全相同的签名. 结构体A{虚拟无效 foo(int i) = 0;};结构体B{虚拟无效 foo(int i) {}};结构 C : 公共 A, 公共 B {}; 我想在派生的class C 中使用基础class B 的foo 实现.但是,如果我没 ..

你能在继承树中重新制作一个方法抽象吗?

编辑: 需要说明的是:设计很丑的事实并不是重点.关键是,设计就在那里,我不得不添加另一个 FlyingMotorizedVehicle 的子类,如果我忘记添加 foo(...).所以我只是想知道我是否可以将它重新定义为抽象. 我现在面临着一个非常奇怪的继承情况.假设,我有三个类,Vehicle、MotorizedVehicle 和 FlyingMotorizedVehicle 以及一堆 ..

带参数的多重继承

我读了很多关于继承的书,但我似乎无法理解为什么这会给我一个错误(使用 Python 2.7.x). A 类(对象):def __init__(self, value):super(A, self).__init__()打印“第一个 %s"% 值B类(对象):def __init__(self, value):super(B, self).__init__()打印“第二个 %s" % 值类日志(A ..
发布时间:2021-11-17 05:41:31 Python

Java 多类组合和样板减少

我们都知道为什么 Java 有/不应该有多重继承.因此,这不是对已经讨论过的内容提出质疑,直到奶牛回家. 这讨论了当我们希望创建一个具有两个或多个其他类的特征的类时应该怎么做. 可能,我们大多数人会这样做是为了从三个类“继承".为简单起见,我省略了构造函数.: class Car延长车辆{最终公共交通运输;最终公用机;} 这样,Car 类直接继承了 Vehicle 类的方法和对象, ..
发布时间:2021-11-10 23:01:31 Java开发

不明确的类型引用

为什么会这样: template 结构体{};结构体A{typedef foo类型;};结构 B : 公共 A{typedef foo类型;};int main(){B::输入约翰;返回0;} 但不是这个: template 结构体{};模板 结构共享{typedef foo类型;};struct A : public Shared{};struct B:公共A,公共共享{};int mai ..
发布时间:2021-06-04 19:48:52 C/C++开发

在 C++ 中迭代类继承

假设我有一个类架构(类的数量在开发期间不断增加),每个类都继承自 N 个具有相同基本接口的类.创建将迭代继承的基函数(在基类或派生类中)的最佳方法(如果可能)是什么? 目标:避免开发人员的错误,并确保我们不会忘记从所有继承中调用所有基本函数使代码更清晰易读. 请查看更新状态的编辑说明 简短示例: class shared_base {上市:虚拟无效功能()= 0;}类 base ..

Python 类继承——诡异的动作

我观察到类继承的奇怪效果.对于我正在处理的项目,我正在创建一个类来充当另一个模块类的包装器. 我正在使用 3rd-party aeidon 模块(用于操作字幕文件),但问题可能不太具体. 以下是您通常使用该模块的方式... project = aeidon.Project()project.open_main(路径) 这里是使用的'wrapper'类的例子(当然真正的类有很多方法) ..
发布时间:2021-06-04 19:48:43 Python

模板类的二义性多重继承

我有一个真实的情况,可以在以下示例中进行总结: 模板 为什么对于编译器来说 B 是一个 TimeListener 并不明显,因此唯一可能的重载解析是 Notifier ? 解决方案 成员名称查找规则说你的代码不明确,因为名称在两个基类中找到,因此查找集无效.您不需要熟悉查找集和合并的所有细节;重要的细节是检查了两个基类并且在两者中都找到了名称 add_listener,这会造成歧义. ..

Python 3.1:C3 方法解析顺序

一个非常简单的菱形继承案例: 类根:def f(自我):打印('根')A类(根):通过B类(根):def f(自我):打印('B')AB(A, B)类:通过AB().f() 根据 Python 3.1.2 文档: 对于大多数目的,以最简单的方式情况下,您可以考虑搜索从父级继承的属性分类为深度优先,从左到右,不在同一班级中搜索两次哪里有重叠层次结构. 因此,我希望我的示例按以下顺序解 ..
发布时间:2021-06-04 19:48:29 其他开发

超多重非虚继承中基类的作用域运算符

考虑这个(完全没有意义,但完全有效)类继承: struct Area { int size;};结构模式 { 整数大小;};结构 R :区域,模式{};结构 C:区域,模式 {};结构 X: R , C {}; 让我们看看这个伟大层次结构的图表: 区域模式|\/||\/||/\ ||/\|电阻率\/\/X 现在,如果我没记错的话,X 应该有 4 个 size 成员. 如何使用作用域运 ..
发布时间:2021-06-04 19:48:26 C/C++开发

使用python数据类实现多重继承

我正在尝试使用新的 python 数据类来创建一些混合类(在我写这篇文章时,我认为这听起来像是一个轻率的想法),但我遇到了一些问题.看下面的例子: 从数据类导入数据类 @dataclassNamedObj 类:名称:strdef __post_init__(self):打印(“NamedObj __post_init__")self.name = "姓名:" + self.name@数据类 ..