Object类是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。
1.clone方法
保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。
主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这是就需要在类中复写clone方法。
副本”的准确含义可能依赖于对象的类。一般来说,对于任何对象 x,如果表达式:x.clone() != x是正确的,则表达式:x.clone().getClass() == x.getClass()将为 true,但这些不是绝对条件。一般情况下是:x.clone().equals(x)将为 true,但这不是绝对条件。按照惯例,返回的对象应该通过调用 super.clone 获得。如果一个类及其所有的超类(Object 除外)都遵守此约定,则 x.clone().getClass() == x.getClass()。按照惯例,此方法返回的对象应该独立于该对象(正被克隆的对象)。要获得此独立性,在 super.clone 返回对象之前,有必要对该对象的一个或多个字段进行修改。这通常意味着要复制包含正在被克隆对象的内部“深层结构”的所有可变对象,并使用对副本的引用替换对这些对象的引用。如果一个类只包含基本字段或对不变对象的引用,那么通常不需要修改 super.clone 返回的对象中的字段。Object 类的 clone 方法执行特定的克隆操作.
注意:所有的数组都被视为实现接口 Cloneable。否则,此方