| Visibility | Gọi từ bên ngoài | Gọi trong subclass | Gọi trong cùng class |
|---|---|---|---|
public | Có | Có | Có |
protected | Không | Có (instance cùng class/subclass) | Có |
private | Không | Có (implicit receiver) | Có (implicit receiver) |
protected thường dùng để so sánh giữa 2 instance cùng class (ví dụ def >(other); balance > other.balance; end). private được kế thừa và có thể gọi trong subclass nhưng không dùng explicit receiver. Ruby ≥ 2.7: cho phép self.private_method trong cùng object.