A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李震 李震 李震 中级黑马   /  2012-3-26 09:11  /  1555 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

能不能自己写个类,也叫java.lang.String?

4 个回复

正序浏览
写是可以写,但这个类不会被类加载器加载到,也就是运行不了,因为加载类时会先调用父类的加载器,而我们已经有这个类了,所以我们的类没机会运行到
回复 使用道具 举报
不可以,因为在用一个包下不可以有相同的类名
回复 使用道具 举报
不可以,如果类名相同但是包名不相同是可以的,但是不能类名和包名都相同。比如可以写个类叫:com.lang.String。
其次,类加载器可以向上委托,自己写得类加载器是最底层的,java.lang.string是在最上层,这里的问题还需要解决
回复 使用道具 举报
package java.lang;

public class String {
  public static void main(String[] args) {
  System.out.println("能自己写个类,也叫java.lang.String");
}
}
运行时会报错:java.lang.NoSuchMethodError:main
                     Exception in thread "main"
运行时会报错说没有main这个方法。
首先在java.lang.string这个类中是没有main这个方法的,所以可以知道jvm首先会调用系统类库中的类,自己定义的String类就没有用了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马