如果我说在其他包中访问受保护的方法?
class A{
}
然后它含蓄地继承对象class.So我有如下类别:
class A{
protected Object clone(){
} /// Here i am not overridning
//All the other methods (toString/wait/notify/notifyAll/getClass)
}
现在为什么不能我访问B类的clone()方法是在相同的A类包中。
Class B{
A a = new A();
a.clone();
**
}
// **说明clone在Object类中是受保护的。但是我没有访问Object的克隆方法。在这里我调用了A类的克隆方法,但是我还没有重载。
你的片段是误导性的非常相同的错误。 类A {} 和 类A { 保护的克隆(){}} 是不等价的。在第一种情况下,当您在代码段2中执行时,您不会实现克隆方法。您调用的错误不会与代码段2一起显示。 – dodecaplex 2010-07-02 09:23:39
它不会回答您的问题,但在新API中优先选择静态工厂方法或将构造函数复制到克隆()。 – helpermethod 2010-07-02 09:47:31
什么意思你评论'///我在这里没有overridning'?你怎么没有压倒它?在Object中,'clone'方法与'A.clone'具有完全相同的签名,所以它重写它。 – 2010-07-02 09:51:37