www.gsyw.net > string类为什么不能调用.ClonE方法?string是oBjECt的子类,子类应该可以调用父

string类为什么不能调用.ClonE方法?string是oBjECt的子类,子类应该可以调用父

是你对protected的理解问题.这个关键字限制了clone()函数只能在本类或子类中使用,所以你在其他类中,不能通过String的对象调用此方法.

查看jdk api:按照惯例,返回的对象应该通过调用 super.clone 获得,一个类及其所有的超类(object 除外)都遵守此约定所以object不能调用clone(),可以按照下面方式test test = new test();test.clone();

API文档中有这样的一段话:Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常.

Object类中的 clone()方法被protected修饰符修饰.这也意味着如果要应用 clone()方 法,必须继承Object类,在 Java中所有的类是缺省继承 Object类的,也就不用关心这点了.然后重载 clone()方法.还有一点要考虑的是为了让其它类能调用这个 clone类的 clone()方法,重载之后要把 clone()方法的属性设置为 public.

object.clone非常有用.比如:object a;b=a.clone();function(a)a作为参数进行操作,会改变a对象的内容.function(b)对b进行操作a对象不变.相当于在内存中又复制出一个 a对象.不会改变原先a 对象.在实际操作中经常会遇到这样的情况.同一个过程中可能也有类似的需求.

并不能, 在object中clone是一个 protected native 的方法 要调用object的clone方法,必须实现clonable接口,在运行时,jvm会做检测,如果没有实现clonable接口,就会抛出clonenotsupportedexception异常. 如果在类的内部调用clone方法,可以直接调用父类的clone方法 要在外部调用它,必须定义一个public的方法,然后调用它的父类的clone方法

从网上找的,希望对你有所帮助吧.3.java中的clone3.1.什么是"clone"? 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B 任何改

String b = (String)a; 这样叫向下转型,需要精确指定类型.可以这样理解 假设a是人(Ojbect) b是孩子(String), String b = a; 这句话可以理解为人是孩子,这样不太对,是吧? 因为人可能不是孩子,所以精确一下 加上个修饰(String 可以理解成定语)变成String b = (String)a; 这样就能保证实例化的是一个孩子对象(String b)

题主 这个是引用传递和值传递的问题,clone会把引用克隆起的 也就是内存空间

protected比package权限多一点的地方就在于可以被子类引用.但它同package一样不能被非该包中的其他类引用. String所在的包为java.lang.String,而你自己写的类

相关搜索:

网站地图

All rights reserved Powered by www.gsyw.net

copyright ©right 2010-2021。
www.gsyw.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com