首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java 自定义String类,为什么会默认执行自定义的String类呀解决办法

2012-06-19 
java 自定义String类,为什么会默认执行自定义的String类呀在com.test包中 定义String类,重写toString()放

java 自定义String类,为什么会默认执行自定义的String类呀
在com.test包中 定义String类,重写toString()放回"my String!"
  public static void main(java.lang.String[] args) {
  String str=new String();
  System.out.println(str.toString());
  }
执行输出为 my String
根据java虚拟机类装载器的装载原理不应该会执行我自定义的String类
应该会先去启动类装载器中装载String类,如果装载到 就不会再装载我自定义的String
类了

[解决办法]
如果你的String在你的包下。当然会先找你的。
如果没有就去找classpath下的
[解决办法]
String类时final修饰的.去API看看吧.
[解决办法]
你试试定义到相同包看看。其实你们是不同的类。
[解决办法]
在com.test包中 定义String类?
String是final的,你自己的String咋个能继承API的String呢
[解决办法]
包名都不相同,类的名字是要包含包的名称的。虽然你的类叫String,但是与java.lang.String是不相同的
[解决办法]
java 默认会先在你当前的包下找String类,找不到再去它自带的包下找
[解决办法]
最根本的原因,你这里其实是
com.test.String str=new com.test.String();
和java.lang.String不是一个类
[解决办法]
首先在你当前的包下找String类,找不到再到自带的包下找。
[解决办法]
up
[解决办法]
你的String跟API里的String不是同一个类!!!!!!
[解决办法]
请不要误导楼主,类的加载顺序请看ClassLoader的原理,是递归委托parent去加载的

这里根本就是2个不同的类,“默认在当前包找”这个是想当然的吧
[解决办法]
看看你 import的时候 导入的是哪个包咯

热点排行