为什么我们需要" @Override对象克隆"如果所有类都是Object的子类,为什么我们不能直接调用该函数?

时间:2015-05-28 22:59:50

标签: java

用户Rohit Jain commented

  

要调用任何超类方法,您需要一个实例   类。现在,如果重写克隆方法,则拥有该实例   Object类的超级。因此,您使用super.clone()来调用它。

他们如何知道,是否有Java规范或其他什么?

1 个答案:

答案 0 :(得分:1)

对不起,如果没有解释,人们会粗鲁无礼。过去比这更好......人们对新的SO成员更好。

要回答你的问题,是的,有一个规范。 Object是所有其他类的超类,提到in the APIJava Language Specification(JLS)。

作为一名新的Java程序员,当您对课程有疑问时,应该查看API ...这将告诉您需要了解的内容,至少在最初几年使用Java编程时。

Oracle有一个tutorial,它将教你Java的基础知识,网上有很多其他资源。

@Override的目的不是让你调用超类'方法。它通过确保使用@Override注释的方法实际覆盖或实现Object中的超类型或公共方法中的方法来提供编译时安全性的度量,如the API中所述。您可以在不使用@Override注释的情况下覆盖方法,但是,如果将来重写方法的签名发生更改,您可能不会注意到代码无法按预期工作。在编译时捕获这些问题要好得多。此外,@Override可帮助其他程序员理解您的代码。

祝你好运!