3
比方说,我在自己的项目中,我使用一个名为com.3rdparty.foo
第三方包,该包中有一个包,私人领域的类:是否可以将我自己的课程放入第三方包中?
package com.3rdparty.foo;
public class Bar {
public void someMethod() { ... }
int ppField;
}
现在我意识到,包私有字段麦凯纳应该在该包之外访问。但是,出于好奇,从技术上可以写我自己的类,并把它归功于该第三方软件包,例如,规避包私有字段保护:
// MyOwnClass.java
package com.3rdparty.foo;
import com.3rdparty.foo.Bar;
public class MyOwnClass {
public int hackPPField (Bar b) { return b.ppField; }
}
我希望这是技术上不可能。但是,如果确实如此,那么我想知道封装封装的确切机制,它可以防止您任意扩展第三方封装。