今天学习java容器这一章内容,先有如下疑问:
1、String类中对toString()方法实现的原理是什么,为什么可以直接由System.out.println(对象名)打印出来?
2、String类定义的对象所具有的属性有哪些?Object定义的对象又具有哪些属性?
3、Object o = new String("Hello!!!");
   System.out.println(o);
这个“Hello”是怎么自动转化为Object对象的??也就是说为什么可以这样赋值?希望各位同学来帮下忙,网上查不到,多谢大家了!!!

解决方案 »

  1.   

    String类是继承Object类,也是Object类型,当然可以赋值
    可以在网上找下java对象类型 
      

  2.   

    你可以去网上搜一下 java继承
      

  3.   

    是的,所以我就很纳闷为什么String类型的字符串直接能赋值给Object对象??不知道是怎么实现的
      

  4.   

    你可以找一本Java 虚拟机的书来看看
      

  5.   

    可不可以这么理解,就是在Object类定义中的属性中存在String类定义的对象?所以可以直接赋值字符串!
      

  6.   

    看一下String的源码吧,还有JAVA的继承。这些都会游刃而解的!@
      

  7.   

    单纯给你回答了这个问题,碰到别的继承之类的还是不会的。看一下String的源码吧,还有JAVA的继承。这些都会游刃而解的!
      

  8.   


    举个例子吧
    一个动物跟一个老鼠
    动物只有 “名称”这个属性
    老鼠除了有“名称”还有“颜色”属性老鼠继承于动物动物  a = new 老鼠()
     就是说 老鼠是动物的一种,我们把老鼠可以叫做老鼠也可以叫做动物
     当使用a时只能使用动物的属性
      

  9.   

    println的重载函数中包括以下这个:
    println(Object)
    它是会去调用Object的toString方法的,在valueof中使用了。public void println(Object x) {
        String s = String.valueOf(x);
        synchronized(this) {
            print(s);
            newLine();
        }
    }
      

  10.   

    1、String类中对toString()方法实现的原理是什么,为什么可以直接由System.out.println(对象名)打印出来? 
    String类中对toString()方法的实现其实是重写了父类Object的toString()方法,而System.out.println()参数类型支持Object,及其子类String和原始类型int,long,double等
    2、String类定义的对象所具有的属性有哪些?Object定义的对象又具有哪些属性? 
    可以看看jdk 源码,对照一下
    3、Object o = new String("Hello!!!");   System.out.println(o); 这个“Hello”是怎么自动转化为Object对象的??也就是说为什么可以这样赋值? 
    如源码:public final class Stringextends Objectimplements Serializable, Comparable<String>,  CharSequenceString 类也是Object类型 ,我设一个比喻吧Object 是中国,String 是北京,你可以说中国包含北京,北京属于中国,反过来能说北京包含中国,中国属于北京吗?父类抽象,子类具体。
    汗,本人语言组织能力有限,真不知道该肿么解释。就这样了,希望对你有点帮助
      

  11.   

    2.子类对象属性集肯定大于等于父类的3.因为String是Object子类,语法层面上是认可这种向上类型转换的,String类内部是通过它的属性,char数组来维护字符串内容的,Object没有
      

  12.   

    java中所有类都是object的派生类(子...类),String也不例外,所以new String("hello")这个对象可以转换成Object类型,System.out.println(对象),会默认调用对象.toString类型,如果子类没有覆写,就会调用Object的toString方法,public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
        },String类有自己的toString方法,返回自己。
      

  13.   


    正解………………  你查看JDK就知道哦……