首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抽象类和抽象方法

抽象类和抽象方法
EN

Stack Overflow用户
提问于 2019-01-08 16:36:02
回答 2查看 65关注 0票数 1

嘿,我一直在看很多关于遗产继承的视频。只有一个抽象类的概念,这意味着它不能实现。

我知道你不能在游戏对象上使用抽象类,但是使用抽象类的力量是什么呢?此外,抽象方法只能在抽象类中实现,为什么不能在抽象类中实现该方法,而只能重写它?

我还读过一些关于使用component<T>的抽象方法的文章,我还没有发现其中的目的是希望你们中的一些聪明的头脑能够帮助一个困惑的程序员:D

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-08 16:55:21

我认为阅读Microsoft关于抽象类和方法的文章会非常有帮助。您可以通过向类提供基本功能并从类继承来利用抽象类。

您还混淆了implementoverride的一些措辞:通过重写它来实现抽象方法。

Component<T>意味着将类型参数作为定义内容的类Component。这在C#中被定义为仿制药。您可以在基类Unity3D类(如Component<GameObject>GetComponent<GameObject> )中使用这些类。

票数 0
EN

Stack Overflow用户

发布于 2019-01-08 17:10:50

抽象类用于建模一个共享的“主类”,它本身永远不会被使用,但是它的派生类将使用该数据/函数。

例如,假设您的继承是

代码语言:javascript
复制
     Animal

Bird Mammal Reptile

在你的游戏中,你只会使用鸟/哺乳动物/爬行动物,因为它们是动物的具体模型,但它们都将至少共享一些共同的代码。也可以提供一些抽象函数,如Move(),这些函数将在每个子类级别上实现。

从工程的角度来看,让我们来做一些奇妙的事情,比如创建一个数组/向量类型的动物,它可以包含鸟类、哺乳动物和爬行动物。

假设我们有一个动物类型的向量,每个子类都有一个。

然后我们就可以

代码语言:javascript
复制
foreach (Animal a in animals)
   a.Move(100)

鸟类/哺乳动物/爬行动物都有不同的移动方式,但是因为我们有抽象的函数而没有基本的实现,我们的代码可以保证在继承树的某个时刻它是实现的。

其他流行的例子是抽象类的项目和抽象函数item.Use();项目可以是一个药剂,一个卷轴,一个苹果(类食品)。这并不重要,因为它们都共享相同的基级接口。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54096018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档