我可以限制另一个类可以在Java中调用的方法吗?
发布于 2021-01-30 17:29:08
假设我有类A
,B
并且C
其中的类C
具有可读和可写的属性:
public class C {
private int i = 0;
// Writable.
public void increment() { i++; }
// Readable.
public int getScore() { return i; }
}
是否可以只A
使用该increment()
方法而只B
使用该getScore()
方法?
关注者
0
被浏览
72
1 个回答
-
不可以,无法分配每个类别的访问权限。
考虑将您的类分为单独的接口,以便每个类仅获得一个具有所需接口的对象。例如:
interface Incrementable { public void increment(); } interface HasScore { public int getScore(); } class C implements Incrementable, HasScore { /* ... */ } class A { public A(Incrementable incr) { /* ... */ } } class B { public B(HasScore hs) { /* ... */ } }
当然,这涉及安全性,但这应该使您朝正确的方向进行思考。