inheritance 相关问题

继承是面向对象编程中的系统,它允许对象支持由前类型定义的操作,而无需提供自己的定义。它是面向对象编程中多态性的主要向量。

Swift:如何创建不可调用的重写函数

我想创建一个必须由子类重写的函数,但该函数不可用。例如。 公开课动物{ func favFood() 抛出 -> String { 扔

回答 1 投票 0

继承中的重新定义

我目前正在尝试学习 C++ 中的继承,但还没有让代码工作,我将把代码和错误消息放在下面。视频的构造函数似乎引起了一些问题,我已经。 ..

回答 1 投票 0

如何检测派生类构造函数是否调用了基类构造函数?

存在类的层次结构,例如 Base -> A -> B。 每当调用 A::A() 时,实际要构造的对象可能是 A 类,然后它是最后一个被调用的 ctor;或班级...

回答 1 投票 0

当我们在子类中调用超类构造函数时,构造函数调用,

超级班 封装对象和类; 公共课循环{ 公共整数速度; 公共整数齿轮; 公共周期(int sp,int gr){ this.speed = sp; this.gear = gr; 系统...

回答 1 投票 0

使用继承、List 和子类解组 json 的问题

我有一个基类: @数据 @NoArgs构造函数 @AllArgsConstructor @JsonTypeInfo( use = JsonTypeInfo.Id.NAME,property = "fieldType",include=JsonTypeInfo.As.EXISTING_PROPERTY,vis...

回答 1 投票 0

C# 中的接口实现和转换

我面临着 C# 接口的概念挑战。据我了解,接口充当契约,任何实现接口的类都同意遵守该契约。鉴于此,我

回答 1 投票 0

C# - 通过继承进行运算符重载

我正在尝试想出一种方法来实现对我的类执行突变测试的方法(是的,我知道 Stryker .NET)。 为了简单起见,假设我想写一个 Mutator ...

回答 1 投票 0

如何在 EF Core 中具有两级继承的 LINQ 查询中从基类访问属性

我们使用 SQL Server 和 EF Core 将 C# 对象映射到数据库。对象模型有两个抽象级别,如下所示: 公共抽象类 Animal { 公共 int Id { 得到;放; } 噗...

回答 1 投票 0

类和子类继承

我有一些使用 IPYWidgets 的代码。它在 Jupyter 笔记本/实验室中运行良好,但在通用 Python 控制台中不起作用。该代码由一个父类和几个子类组成。其中两个

回答 1 投票 0

自定义类:在我的 IDE 上出现 TypeNotFound 错误,但正常工作

我正在尝试创建一个具有继承的自定义类: MyClass.ps1: 类我的类{ 隐藏[Int] $Attribute1 隐藏[Int] $Attribute2 隐藏[Int] $Attribute3 我的课() { $...

回答 1 投票 0

在 C++ 中隐藏父类但不隐藏祖父母

是否有可能在班级可见性方面跳过一代? 以下内容适用于 gcc 编译器,但不适用于 clang 或 intel。它们失败并出现错误:无法将“C”转换为其受保护的基类...

回答 1 投票 0

使用运算符实例从父引用访问子类变量是否不好?

我有一个类,例如 Person,有一些参数,例如姓名和年龄。 现在我想添加一些其他参数,例如就业。这些新参数仅对应用程序的一种模式有用...

回答 2 投票 0

C# 操纵未知的孩子

如何在不知道确切类型的情况下修改对象。 我在不知道其确切类型的情况下访问函数中的子元素时遇到问题。 这是我的例子。我尝试了显式和隐式

回答 1 投票 0

带有 std::enable_if 的嵌套模板类,C++

我有一个模板类B,其第一个参数T1必须继承类A,第二个参数T2用于嵌套类C: A 类 { ... }; 模板 我有一个模板类B,其第一个参数T1必须继承类A,第二个参数T2用于嵌套类C: class A { ... }; template<typename T1, typename T2 = T1, typename = std::enable_if_t<std::is_base_of<A, T1>::value>> class B { class C { T2 data; C(T2 data); void func(); ... }; ... }; 问题是当我尝试定义嵌套类的构造函数和方法时出现错误: template<typename T1, typename T2, typename> B<T1, T2>::C::C(T2 data) : data(data) { ... } template<typename T1, typename T2, typename> void B<T1, T2>::C::func() { ... } E0464“B::value, void>>::C”不是类模板; C3860 类类型名称后面的类型参数列表必须按照类型参数列表中使用的顺序列出参数。 如果我不使用嵌套类或不使用 std::enable_if,代码可以正常工作,但在这里我需要它们,而且我真的不明白出了什么问题。 定义构造函数时仍然需要提供默认的模板参数: template<typename T1, typename T2, typename D> B<T1, T2, D>::C::C(T2 data) : data(data) { } 或者,由于最后一个参数仅用于 SFINAE 目的并且始终旨在为 void,因此您可以编写: template<typename T1, typename T2> B<T1, T2, void>::C::C(T2 data) : data(data) { } 请注意,最好在 C 中定义构造函数。 无论如何,大多数时候你都无法将模板拆分为标头/源代码,并且处理类模板的外线定义可能非常烦人且脆弱。 C++17 和 C++20 的注意事项 如果您使用的是 C++20,您可以编写: template<std::derived_from<A> T1, typename T2 = T1> class B { /* ... */ }; template<std::derived_from<A> T1, typename T2> B<T1, T2>::C::C(T2 data) : data(data) { } 如果您使用的是 C++17,您至少可以使用辅助变量模板std::is_base_of_v<A, T1>。

回答 1 投票 0

这些链接颜色在 CSS 继承方面的表现如何?

身体{ 颜色:绿色; } .my-class-1 a { 颜色:继承; } .my-class-2 a { 颜色:初始; } .my-class-3 a { 颜色:未设置; } 默认链接 body { color: green; } .my-class-1 a { color: inherit; } .my-class-2 a { color: initial; } .my-class-3 a { color: unset; } <ul> <li>Default <a href="#">link</a> color</li> <li class="my-class-1">Inherit the <a href="#">link</a> color</li> <li class="my-class-2">Reset the <a href="#">link</a> color</li> <li class="my-class-3">Unset the <a href="#">link</a> color</li> </ul> 默认链接颜色 继承链接颜色 重置链接颜色 取消链接颜色 我正在从 MDN Web Docs 网站学习 Web 开发,当我试图理解 CSS 中的继承概念时,我陷入了困境。 网站上提供了 HTML 和 CSS 代码,并提供了其结果。结果是各种链接的颜色取决于应用于它们的类和继承。我无法理解 CSS 如何影响链接的颜色。 来自 MDN Web Docs 网站的网页 代码及其结果已经提供给我了。我只是想了解这种行为。 默认链接颜色 <a>元素在浏览器具有的默认样式中显示为蓝色,称为用户代理样式表。大多数浏览器在其用户代理样式表中都有一个 CSS 规则,大致相当于: a { color: blue; } 继承链接颜色 让我们自上而下地工作,以更好地理解这个案例。 在 CSS 或大多数用户代理样式表中,<ul> 没有显式应用 color。如果我们看一下 color 属性的 正式定义,我们可以看到: 继承 是的 如果我们随后参考继承文档,它会说: 如果未在元素上指定继承属性的值,则该元素将获取其父元素上该属性的计算值。 因此,对于 <ul>,由于它实际上没有为其 color 属性设置显式值,因此它继承自 <body>,其(计算出的)color 值为 green。 <ul> 元素的 color 属性被 计算 为 green。 对于 li.my-class-1,它再次没有为其 color 属性设置显式值(来自作者或用户代理样式表),因此它继承自 <ul>,其(计算出的)color 值为 green 。 li.my-class-1 元素的 color 属性被 计算 为 green。 对于 <a> 内的 li.my-class-1 元素,它的 inherit 属性具有 color 值,这意味着它继承自其父级 <li>,其(计算出的)color 值为 green。因此,<a>元素的color属性被计算为green。 重置链接颜色 我们可以从 initial 的 MDN 文档中了解 initial 的值意味着什么: initial CSS 关键字将属性的初始(或默认)值应用于元素。 此外,初始(或默认)值定义为: CSS属性的初始值是其默认值,如规范中其定义表中所列。 如果我们查看 color 属性的 正式定义,我们可以看到: canvastext 初始值 因此,<a>元素的color值为canvastext。这是一个系统颜色,定义为: CanvasText应用程序内容或文档中的文本颜色 对于“典型”设置,这相当于 black。因此 color: initial 等价于 color: black,因此为什么 <a> 元素是彩色的 black。取消设置链接颜色 我们可以从 unset 的 MDN 文档中了解 unset 的值意味着什么: 如果属性自然继承自其父级,则 unset CSS 关键字会将属性重置为其继承值;如果不是,则重置为其初始值。 如果我们查看 color 属性的 正式定义,我们可以看到: 继承 是的 因此,color元素的<a>属性遵循与color: inherit相同的行为,如前面详细介绍的继承链接颜色部分中所指定。

回答 1 投票 0

我如何以编程方式决定将对象创建为哪个类?

我想编写代码来与不同定位风格(绝对与相对)的编码器进行通信。我的想法是创建一个具有所有编码器共有的东西的基类。然后就是

回答 1 投票 0

EF Core:如何在所有生成的迁移中包含公共列?

注意:用 VB.NET 或 C# 回答都可以。我没有偏好。 我正在使用每种类型一个表的架构。 我希望我的所有实体都有第二个键列(Guid 类型),所以我创建了...

回答 1 投票 0

EFCore:如何在所有生成的迁移中包含公共列?

注意:用 VB.NET 或 C# 回答都可以。我没有偏好。 我正在使用每类型表架构。 我希望我的所有实体都有第二个键列(Guid 类型),所以我创建了...

回答 1 投票 0

每个类都扩展 Object 吗? [已关闭]

我读到每个类默认都会扩展一个对象类。那么它应该会导致多重继承并且Java一定不支持。 拜托,我搜索了很多,但我找不到正确的答案......

回答 6 投票 0

检测基类的派生类破坏

问题 在 C++ 中,派生 cas 析构函数在对象销毁时在基类析构函数之前调用。是否可以自动通知基类(即调用成员函数...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.