黑马程序员技术交流社区
标题:
super关键字我这样理解对不对?
[打印本页]
作者:
luqh
时间:
2015-3-21 16:50
标题:
super关键字我这样理解对不对?
public class Poin {
private int x;
public int y;
public Poin(int x, int y) {
super();
this.x = x;
this.y = y;
}
}
复制代码
1.在上面的Point类中因为Point没有父类,所以
public Poin
(int x, int y) 中的super(),实际不起作用,而当Point有父类的时候,这个super才会调用父类的构造方法,是这样理解么?
2.不管Point有没有父类,这个super()都要写么?
作者:
fantacyleo
时间:
2015-3-21 17:13
Point有父类——Object 所以super()是起作用的。但super()可以不写,编译器会自动加上super()
作者:
妖妖
时间:
2015-3-21 19:39
所有的类都会有一个共同的父类,就是object类,super()即使不写上,程序也会在运行的时候自动加上,就像是每一个类都会有一个默认的构造函数一样。
作者:
夜班心桥
时间:
2015-3-21 23:11
所有的类,都是Object的子类。所以,在每个类的构造函数中的第一行都会有一个默认的super()。
在这里,Poin没有父类(Object除外),其实Poin的构造方法里,可以不用写super语句,编译时候,会自动加上一个super()。
作者:
夜班心桥
时间:
2015-3-21 23:13
补充,如果在一个类中的构造方法中的第一行,如果手动写了this语句,此时该构造方法中的默认的super语句就没有了。因为在这里,super和this语句只能有一个,而且必须放在第一行。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2