黑马程序员技术交流社区

标题: 泛型限定 [打印本页]

作者: 赵卓辉    时间: 2014-3-4 15:15
标题: 泛型限定
本帖最后由 赵卓辉 于 2017-6-2 16:54 编辑
  1. xx
复制代码
xxxx


作者: 行如止水    时间: 2014-3-4 15:37
子类构造时要访问父类的构造方法,所以子类的构造函数里要写super,
作者: 老貓钓鱼    时间: 2014-3-4 15:41
子类构造函数需要访问父类构造方法super,如果子类构造函数里没写super的话,虚拟机自动添加super(),而你的父类中没有空参的构造方法,只有带参的,所以你必须自己写明带参的父类构造方法
作者: 一年_Hei    时间: 2014-3-4 16:43
子类初始化必须先初始化父类,所以super(name)必须写,
如果子类不用this.name=name;那么子类自己的name没有初始化值,所以是null。
it.next().getName拿的值就是空,
如果想不用this.name=name;就用it.next().getName能拿到值,就不要覆盖父类的getName()方法。
把子类的getName()方法删掉就OK了
作者: 郝大龙0104    时间: 2014-3-4 17:07
你这是继承问题没有搞明白吧。。  子类继承父类时,name   和  getName方法  子类都会有的其中 你的构造方法只有一个   所以 子类的构造方法 中必须有super(name)
两个类继承关系的代码如下:
  1. class Person{
  2.         private String name;

  3.         public String getName() {
  4.                 return name;
  5.         }
  6.         Person(String name){
  7.                 this.name = name;
  8.         }
  9. }

  10. class Student extends Person{

  11.         Student(String name) {
  12.                 super(name);
  13.         }
  14.        
  15. }
复制代码

作者: 我要的幸福呢    时间: 2014-3-4 17:12
  1. class Student extends Person{
  2.         private String name;
  3.         public String getName(){
  4.                 return name;
  5.         }
  6.         Student(String name){
  7.                 /*
  8.                  * 如果注释下面这行,程序报错
  9.                  * 原因在于,如果你在父类Person中没写任何构造方法,那么会默认有一个空参的构造方法,
  10.                  * 而一旦自己写了带参的构造方法,默认的空参构造方法就没有了,而子类的构造方法默认调用
  11.                  * 父类的空参构造,此时父类没有空参构造,所以会报错,因此要么调用父类的有参构造,要么
  12.                  * 在父类中再写一个空参构造。
  13.                  */
  14. //                super(name);
  15.                 /*
  16.                  * 注释下面这行,打印为null,null,null
  17.                  * 原因在于,父类的name属性是私有的,子类并没有继承该属性,在子类的getName方法中,返回
  18.                  * 的是子类的name属性值,而super(name)是给父类的name属性赋值,所以如果没有下面这句,子类
  19.                  * 的属性根本没有赋值,必然打印null。所以,要么用下面代码给本类name属性赋值,要么在本类
  20.                  * 的getName方法中,返回super.getName(),就可以打印出结果了
  21.                  */
  22.                 this.name=name;        
  23.         }
  24. }
复制代码



作者: 赵卓辉    时间: 2014-3-4 20:13
我要的幸福呢 发表于 2014-3-4 17:12

:handshake谢谢,懂了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2