创建对象时出现错误“存在显式转换(是否缺少强制转换)”:

2023-12-29

我有兴趣学习 OOP 概念。在尝试使用继承的简单程序时。我注意到这个错误。我不明白为什么会出现这个错误?我给出了下面简单的 C# 代码:

class Animal
{
    public void Body()
    {
        Console.WriteLine("Animal");
    }
}
class Dog : Animal
{
    public void Activity()
    {
        Console.WriteLine("Dog Activity");
    }
}

class Pomeranian : Dog
{
    static void Main(string[] args)
    {
        //Dog D = new Dog();
        Dog D = new Pomeranian();    -----> No error occur at this line
        Pomeranian P = new Dog();    -----> Error occur at this line
        D.Body();
        D.Activity();
        Console.ReadLine();
    }             
}

任何人请告诉我那里到底发生了什么......


你必须理解这个概念每只狗都是动物,但并非所有动物都是狗.

Program是个糟糕的名字,让我们把它去掉然后改成它Pomeranian: 现在一切都会清楚了。

Pomeranian P = new Dog();//This is not valid because not all dogs are Pomeranian.

但你可以执行以下操作

Dog d = new Pomeranian();//You know why this works :)

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建对象时出现错误“存在显式转换(是否缺少强制转换)”: 的相关文章

  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • asp.net cookie、身份验证和会话超时

    我有一个使用表单身份验证的 asp net 网站 我在会话中保留一些信息 例如用户名 用户 ID 电子邮件等 我通过在身份验证 cookie 上设置较长的到期日期来允许用户保持登录网站的状态 因此 当用户仍处于身份验证状态时 会话过期的情况
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反

随机推荐

  • 无法格式化节点“值”以作为 SQL 执行

    我偶然发现了一个非常奇怪的 LINQ to SQL 行为 错误 我无法理解 我们以下面的表为例 客户 gt 订单 gt 详细信息 每个表都是前一个表的子表 具有常规的主外键关系 一对多 如果我执行以下查询 var q from c in c
  • 在 CALayer 上显示 NSImage

    我一直在尝试在 CALayer 上显示 NSImage 然后我意识到我显然需要将其转换为 CGImage 然后显示它 我有这个代码似乎不起作用 CALayer layer CALayer layer NSImage finderIcon N
  • Qt:捕获图像而不保存 - QCameraImageCapture

    在我正在进行的项目中 我在使用 OpenCV 和 QCamera 之间左右为难 基本上 我希望用户输入他们想要捕获的帧数 然后相机将应用我用 CUDA 和 CPU 实现编写的高斯滤波器来拍摄该数量的图像 然后返回数据并将其放入图表中 以便我
  • IPython 5.0 和控制台中的按键绑定

    新版本的 IPython 不再依赖于readline但使用纯Python库prompt toolkit 解决苹果和Windows系统的维护问题 A new feature is the ability to edit a multi lin
  • PHP 模块已加载警告

    刚刚注意到 PHP 在 CLI 上执行时会抛出警告 php 模块已经加载 php v PHP Warning Module PDO already loaded in Unknown on line 0 PHP Warning Module
  • Java 9 嵌套(分层或父/子)模块

    是否可以在 Java 9 中创建基于继承 或嵌套 的模块 像这样的事情 module a module a1 module a2 在此示例中 两个a1 and a2模块是以下的子模块a 如果我导入任何一个子模块 我将获得父模块的功能 a 以
  • 如何找到 Perl 模块的安装位置?

    如何通过名称获取已安装 Perl 模块的路径 例如Time HiRes 我想要这个只是因为我必须在 SGE Grid Engine 系统的不同节点上运行我的 perl 脚本 有时 甚至以其他用户名运行 我可以使用 CPAN pm 为自己安装
  • python 2.7 中的 zip 和 groupby 好奇心

    有人可以解释为什么这些在 Python 2 7 4 中输出不同的东西吗 他们在 python 3 3 1 中输出相同的内容 我只是想知道这是否是 2 7 中的一个错误 在 3 中已修复 或者是否是由于语言的某些变化所致 gt gt gt f
  • 在 Cassandra 中按创建日期排序

    我在订购数据时遇到问题卡桑德拉 Database 这是我的表结构 CREATE TABLE posts id uuid created at timestamp comment enabled boolean content text en
  • 我应该将存储的 Markdown 转换为 HTML,还是应该只存储 HTML?

    Markdown http daringfireball net projects markdown 似乎比 HTML 更容易编写和编辑 我见过的所有 HTML 编辑器都会输出大量不必要的垃圾 Markdown 看起来更干净 这就是我想做的
  • Android Studio 2.2.3 - minSdk(API21) > deviceSdk(API17) [重复]

    这个问题在这里已经有答案了 I get this error when I try to run an android tablet as an emulator Does it mean my device is older than t
  • jQuery 检查元素是否具有以某个字符串开头的类

    我需要循环访问页面中的一些元素 然后 对于每个元素 如果它有一个以 C 开头的类 则执行某些操作 dialog li each function if this hasClass C do something 这可能听起来很愚蠢 但是我应该
  • R 中的困难聚合,对球队篮球统计数据进行分组

    预先感谢您对此的任何帮助或建议 这是我正在使用的数据框的简短示例 boxscore stats structure list game id c 157046L 157046L 157046L 157046L 157046L 157046L
  • WCF WebGet 和 ICollection<>

    我正在尝试从 REST WCF 服务返回通用 ICollection 以下应该可行吗 ServiceContract public class WebConfigurationManager WebGet OperationContract
  • 有什么相对简单的方法来确定一个句子是英语的概率?

    我有许多字符串 字符集合 它们代表不同语言的句子 例如 你好 我叫乔治 Das brot is the gut etc 我想为每个句子分配分数 从 0 1 表明它们是英语句子的可能性 是否有一个公认的算法 或Python库 可以做到这一点
  • Java中删除字符串中的重复行

    我的字符串是 EEE EEE AAA BBB CCC BBB DDD CCC 但我需要这个字符串没有相同的行 像这样 EEE AAA BBB CCC DDD 我该怎么做 这是一个简单的答案 StringBuilder builder new
  • C# 异步任务无限期等待

    我正在尝试使用 异步 和 等待 提供的功能来异步下载网页内容 但我遇到了任务永远等待完成的问题 您能否让我知道以下代码片段有什么问题 protected void Page Load object sender EventArgs e va
  • Python 中的静态数组

    我正在学习如何用 python 编程 同时也在学习理论作为计算机科学课程的一部分 在编程中 我知道我可以通过使用 append 函数向数组添加其他变量 但是在我的理论课程中 我们被告知数组的大小既不能增加也不能减少 这在Python中是如何
  • 我希望我的 pre('save') 猫鼬函数只运行一次

    我不知道标题中的确切要求是否可能 但如果不可能 我真的很感激一个替代解决方案 我有猫鼬的预保存方法 ownerSchema pre save function next const owner this bcrypt genSalt 10
  • 创建对象时出现错误“存在显式转换(是否缺少强制转换)”:

    我有兴趣学习 OOP 概念 在尝试使用继承的简单程序时 我注意到这个错误 我不明白为什么会出现这个错误 我给出了下面简单的 C 代码 class Animal public void Body Console WriteLine Anima