小编dhu*_*s01的帖子

创建<base class>类型的变量以在C#中存储<derived class>对象

我对编程有些新意,我对C#中的类,继承和多态有疑问.在了解这些主题的同时,我偶尔会遇到类似这样的代码:

Animal fluffy = new Cat();  // where Animal is a superclass of Cat*
Run Code Online (Sandbox Code Playgroud)

这让我很困惑,因为我不明白为什么有人会创建一个类型为Animal的变量来存储Cat类型的对象.为什么一个人不会简单地写这个:

Cat fluffy = new Cat();
Run Code Online (Sandbox Code Playgroud)

我确实理解为什么将子对象存储在父类型变量中是合法的,但不是为什么它有用.是否有充分的理由将Cat对象存储在Animal变量与Cat变量中?一个人可以举个例子吗?我确定它与多态和方法覆盖(和/或方法隐藏)有关,但我似乎无法绕过它.提前致谢!

c# polymorphism inheritance class object

19
推荐指数
3
解决办法
7607
查看次数

标签 统计

c# ×1

class ×1

inheritance ×1

object ×1

polymorphism ×1