【发布时间】:2020-05-23 06:53:07
【问题描述】:
我在面试中被问到这个问题,但无法回答。
有两个项目:P1 和 P2
P1 有一个带有方法 M1 和 M2 的 A 类
P2 有一个 B 类和 C 类,这两个类(继承或引用)*来自项目 P1 中的 A 类
B 类应该能够访问方法 M1 但不能访问 M2 C 类应该能够访问方法 M2 但不能访问 M1
*我不记得他说的是继承还是参考
如何做到这一点?
【问题讨论】:
-
请分享您的代码和课程
-
我相信这是一个关于理解问题的问题,而不是关于实施它的问题。您拥有受保护、内部、接口等工具,但如果您的理解是您在 P1 中设置的内容阻止 P2 中的两个类执行您不希望它们执行的操作,那么不,你不能那样做。但是如果你想在 P2 中设计这两个类,使它们只能访问它们应该访问的方法,那么是的,你可以这样做,但这部分是在 P2 中完成的。
-
这听起来像是一个措辞不佳的问题。从某种角度来看是不可能的。如果 B 类可以访问某个方法而 C 类不能,那么您可以随时更改 C 类中的代码,以便它执行 B 类所做的任何事情。这个问题暗示它是关于限制或阻止访问,但事实并非如此。 “应该能够访问”可能意味着任何事情。一个类允许或阻止对方法的访问。
-
我在采访中的回答是,“你为什么要做这么奇怪和令人困惑的事情?”