黑马程序员技术交流社区
标题:
为什么子类中所继承父类时的两个super后面不一样,一个带(),一个带点?
[打印本页]
作者:
xuzhen5014
时间:
2012-11-10 17:03
标题:
为什么子类中所继承父类时的两个super后面不一样,一个带(),一个带点?
class Person
{
private String name;
Person(String name)
{
this.name = name;
}
void show (){}
}
class Student extends class Person
{
Student(String name)
{
super(name);
}
void method
{
super.show();
}
}
help......help......help......,感谢!!!:loveliness:
作者:
刘丽娜
时间:
2012-11-10 17:06
第一个是调用父类的构造方法 ,第二个是调用父类的普通方法 show()方法
作者:
刘菲
时间:
2012-11-10 19:55
带()的那个是在调用父类中的构造函数,并往里传参数。
带点的那个是在调用父类中的方法
作者:
李桐
时间:
2012-11-10 20:37
同感,第一个是调用父类构造方法,第二个调用父类的普通方法
作者:
朝花夕拾
时间:
2012-11-10 20:43
super(name);是在调用父类有形参的构造方法, super.show();是在调用父类的show方法
作者:
xuzhen5014
时间:
2012-11-10 22:19
感谢大家的help ,知道了{:soso_e176:}
作者:
杜正冬
时间:
2012-11-11 10:19
show();方法是父类定义的普通方法
作者:
滔哥
时间:
2012-11-11 12:06
支持下
作者:
王阳
时间:
2012-11-11 16:48
super(name)是调用父类的构造函数,super.show()是调用父类的show方法。
调用父类的构造函数时,必须要用super()或者super(... args)的方式,因为构造函数和方法及成员变量不一样,所以不能用super.show的方法取调用。而至于super.show是因为show方法属于父类的成员,所以可以用父类对象句柄super.show指向show方法,这里因为show方法不是private,所以其实可以直接调用父类show方法的。不用加super
作者:
张综
时间:
2012-11-11 20:38
在继承中如果要调用父类的构造方法可以用super关键字,而子类在构造的过程中必须调用父类的构造方法,在继承中如果调用父类的方法可以使用super关键字,所以第二个是调用父类的方法show();
作者:
李长波
时间:
2012-11-11 22:38
哥哥!调用父类的一般方法用点,而调用父类的构造方法用super啊!看视频啊!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2