黑马程序员技术交流社区
标题:
关于继承的
[打印本页]
作者:
李凤鸣
时间:
2013-1-8 15:01
标题:
关于继承的
本帖最后由 张向辉 于 2013-1-16 12:08 编辑
class Person
{
private String name;
Person(String name)
{
this.name=name;
}
void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
}
class Student extends Person
{
public Student(String name) {
super(name);
}
}
复制代码
类函数Student 中super(name);
指的是this.name=name么
作者:
黑马王振宇
时间:
2013-1-8 15:06
本帖最后由 黑马王振宇 于 2013-1-8 15:08 编辑
那么理解也可以,你这里的问题就是:父类中定义完的方法子类不用重新定义,直接拿过来用就可以了。
带参数的就调用相应的父类中的构造方法。
首先你student中接收进来一个参数name,super()中带参数,那么他调用的就是父类中带参数的构造函数Person(String name)。
作者:
陈丽莉
时间:
2013-1-8 15:08
super(name)代表的是子类调用了父类Person中的字符串为参数的构造函数,即
Person(String name)
{
this.name=name;
}
这个方法,并将子类Student接收到的name作为传参。
作者:
徐帅
时间:
2013-1-8 15:14
本帖最后由 徐帅 于 2013-1-8 15:22 编辑
你这里是访问父类的构造函数,即Person类的构造函数:Person(String name){this.name = name}
另外对于继承中的构造函数:
1、在对子类对象进行初始化时,父类的构造函数也会运行,那是因为子类的构造函数默认第一行有一条隐式的语句 super();
2、super()会访问父类中空参数的构造函数,而且子类中所有的构造函数默认第一行都是super(),同样是因为初始化要先执行。
3、当父类中没有空参数的构造函数,就必须用super来指定。
4、构造函数的调用是super(),一般函数用super.(),比如调用父类的show方法,调用的方式为super.show()
注意:super语句一定定义在子类构造函数的第一行,(和this道理一样,先按照父类的方式进行初始化,再通过自己的方式初始化),子类必须要访问父类。
希望对楼主有帮助
作者:
丁强强
时间:
2013-1-16 12:04
我的理解是 this 是本类,super是父类
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2