weixin_44936848的博客

私信 关注
魔之尊者
码龄2年

学习成就梦想

  • 0
    被访问量
  • 暂无
    原创文章
  • 暂无
    作者排名
  • 0
    粉丝数量
  • 于 2019-04-18 加入CSDN
获得成就
  • 获得0次点赞
  • 内容获得0次评论
  • 获得0次收藏
荣誉勋章
兴趣领域
  • #人工智能
    #语音识别#视觉/OpenCV#机器学习#自然语言处理#Python#神经网络#深度学习#图像处理#NLP#算法#数据分析#TensorFlow
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Java不重新toString();方法,单独写一个新方法实现类似重新toString()的方法不行吗?有什么区别?为啥大家都执念的说要重写toString()呢。。。

每每的问题或搜索为什么要重新toString()方法时,几乎100%的人都说因为toString()方法输出的是对象地址的16进制或哈希code表达方式,我们可能不需要。 我的问题是: ->如果是以上答案我可以不去问,因为难道大家不知道Object里的toString就是输出对象的地址表达方式,不重写当然还是输出对象的地址的表达方式不需要这个信息所以要重新,这个回答没有意义 ->所以问题应该是为什么大家执着的说要冲洗toSpring()方法,而不是随便写一个新的方法只要能体现重新toString()方法的效果就行了?难道这不是大家想知道的结果吗?写新方法和重新toString()实现一个效果有什么区别?这种执念的非要重新toSring()的说法怎么理解?难道只是类都继承了Object里的toString()方法吗... 本人小白,谢谢大神答疑解惑
3回答
发布问题于 6 月前

Java当子类和父类有相同名字的属性时,子类的有参构造方法创建对象只给父类赋值而子类还是默认值,什么原因

我的问题:为什么代码Vip vip = new Vip("张三"); 赋值的是父类的name赋了张三,二子类的name还是默认null?难道跟子类构造方法里的super(name)有关,为什么? 补充主要疑惑:在创建对象使用有参构造方法new时,Vip vip = new Vip("张三"); 这个过程不就是把name即"张三"赋给了子类的String name的name了吗?本例却没有给子类name赋值是因为有参构造方法传入name时没有写this.name = name的原因吗?是没有写this.name = name的原因吗?(重要疑惑点写两遍)...还是跟放了个super(name)有关系,此例构造方法: public Vip(String name){ },注意没在方法大括号里写this.name = name; 感谢大神答复 ``` public class SuperTest{ public static void main(String[] args){ Vip vip = new Vip("张三"); vip.shopping(); } } class Customer{ String name; public Customer(){ } public Customer(String name){ this.name = name } } class Vip extends Customer{ String name; public Vip(){} public Vip(String name){ super(name); } public void shopping(){ System.out.println(this.name + "正在购物");//结果null正在购物 System.out.println(super.name + "正在购物");//结果张三正在购物 System.out.println(name + "正在购物");//结果null在购物 ```
1回答
发布问题于 6 月前