小编ali*_*922的帖子

为什么我们在Ruby中有隐式接收器?

我有两个关于Ruby核心OOP概念的问题.

  1. 我理解方法的显式调用(即self)和隐式调用(即没有初始化类对象或实例方法中的self)之间的区别.当我们有明确的接收器做一个非常整洁和明确的工作接收一个自我的方法(因为它引用当前的对象)而不是隐含的(我认为在诸如何时使用相同名称的方法或变量的情况下非常不确定初始化),那为什么我们仍然需要隐式调用方法?它只是一种偏好,还是因为正确使用私人和公共方法而必要?

  2. 通常,OOP私有方法绑定在类本身中,不能在子类或外部访问.但是,那些需要私有但又需要在子类中访问的方法然后在那里使用受保护的方法.但是在Ruby中,私有和受保护的方法都是在继承的类中访问的,唯一的区别是私有方法只能被隐式调用,受保护的方法可以隐式或显式调用.我不明白这里的哲学只是因为ruby中的隐式调用功能,私有方法的一般定义有所不同?

ruby oop

2
推荐指数
1
解决办法
474
查看次数

标签 统计

oop ×1

ruby ×1