嘿,我一直在看很多关于遗产继承的视频。只有一个抽象类的概念,这意味着它不能实现。
我知道你不能在游戏对象上使用抽象类,但是使用抽象类的力量是什么呢?此外,抽象方法只能在抽象类中实现,为什么不能在抽象类中实现该方法,而只能重写它?
我还读过一些关于使用component<T>的抽象方法的文章,我还没有发现其中的目的是希望你们中的一些聪明的头脑能够帮助一个困惑的程序员:D
发布于 2019-01-08 16:55:21
我认为阅读Microsoft关于抽象类和方法的文章会非常有帮助。您可以通过向类提供基本功能并从类继承来利用抽象类。
您还混淆了implement和override的一些措辞:通过重写它来实现抽象方法。
Component<T>意味着将类型参数作为定义内容的类Component。这在C#中被定义为仿制药。您可以在基类Unity3D类(如Component<GameObject>或GetComponent<GameObject> )中使用这些类。
发布于 2019-01-08 17:10:50
抽象类用于建模一个共享的“主类”,它本身永远不会被使用,但是它的派生类将使用该数据/函数。
例如,假设您的继承是
Animal
Bird Mammal Reptile在你的游戏中,你只会使用鸟/哺乳动物/爬行动物,因为它们是动物的具体模型,但它们都将至少共享一些共同的代码。也可以提供一些抽象函数,如Move(),这些函数将在每个子类级别上实现。
从工程的角度来看,让我们来做一些奇妙的事情,比如创建一个数组/向量类型的动物,它可以包含鸟类、哺乳动物和爬行动物。
假设我们有一个动物类型的向量,每个子类都有一个。
然后我们就可以
foreach (Animal a in animals)
a.Move(100)鸟类/哺乳动物/爬行动物都有不同的移动方式,但是因为我们有抽象的函数而没有基本的实现,我们的代码可以保证在继承树的某个时刻它是实现的。
其他流行的例子是抽象类的项目和抽象函数item.Use();项目可以是一个药剂,一个卷轴,一个苹果(类食品)。这并不重要,因为它们都共享相同的基级接口。
https://stackoverflow.com/questions/54096018
复制相似问题