加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

“Ruby中不必要的接口和抽象类” – 有人可以解释吗?

发布时间:2020-12-16 20:41:50 所属栏目:百科 来源:网络整理
导读:我试图围绕Ruby包围我的头,我正在努力的一件事是缺少接口/抽象类支持.从谷歌搜索,我不断看到抽象类相关的Ruby问题的答案是“你在Java中思考,Ruby不工作” 那么,Ruby中如何在没有接口/抽象类的情况下工作? 例如,在Java中,我可以创建一个抽象类“book”,子类
我试图围绕Ruby包围我的头,我正在努力的一件事是缺少接口/抽象类支持.从谷歌搜索,我不断看到抽象类相关的Ruby问题的答案是“你在Java中思考,Ruby不工作”

那么,Ruby中如何在没有接口/抽象类的情况下工作?

例如,在Java中,我可以创建一个抽象类“book”,子类“小说”,“教科书”和“日志”.有很多共同的功能,我扔在“书”,但我不希望它可以直接访问 – 一本书必须是小说,教科书或杂志.

在红宝石中,我该如何写出这种功能?

解决方法

我也是红宝石启动器.根据我的理解,红宝石中的抽象类有更密切的对手.那就是模块.您不能创建任何模块实例,但您可以包含另一个类.所以一个目标类将获得父类的全部功能
module Log
    def write
      //blah
    end
  end

  class EventLog
    include Log

    def Prepare
    end
  end

在静态类型的语言(如java / C#)中,Interfaces执行这些类以使编译时具有所有的方法.由于Ruby是动态的,所以没有意义.

为了更清楚,请检查这些帖子为什么动态语言不需要接口..

> why-dont-we-require-interfaces-in-dynamic-languages
> why-do-dynamic-languages-like-ruby-and-python-not-have-the-concept-of-interfaces

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读