栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否有任何理由要在定义的类的每个方法中都有一个抽象类?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否有任何理由要在定义的类的每个方法中都有一个抽象类?

即使所有方法都具有默认实现,也有可能这些实现在应用程序上下文中实际上没有 意义
。这些方法可能仅进行内部记账,而实际有用的实现必须由派生类提供,该派生类将执行其需要执行的操作,然后调用超类方法。

但是,这仅仅是猜测。您将必须显示一个实际示例来说明这种设计的原因。

例如,让我们以一个简单的游戏引擎为例。我的

GameObject
游戏中有很多不同的地方。

  • 有些是可见的,所以我的基本类有一个

    draw()
    方法。但是可能有一些看不见的对象(如触发器区域)根本不显示,因此我在基类中将其实现为无操作。

  • 有些人与某物碰撞时会做某事,因此每个人都有一个

    collide(other)
    方法。但是有些碰撞时就像纯粹的视觉粒子效果一样,什么也不做,因此我在基类中也提供了禁止操作的功能。

  • 有些人在每次游戏打勾时都会做一些事情,所以他们有

    update()
    办法。但是某些对象(例如墙)可能根本无法独自执行任何操作。因此,我也对此不提供任何操作。

那么,当我有一个不可见的对象,自己不做任何事情并且不与任何东西交互时,该怎么办?在游戏中没有理由。所以我做了基础课

abstract
从理论上讲,
您可以实例化它,因为所有方法都有实现,但是 实际上 您没有理由这样做,并且当您尝试时,您会误解了我的游戏引擎的工作方式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441059.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号