下面的代码(类的缩写版)我在Java视频教程中看到过。super()在没有继承的类的构造函数中
public class Address {
private String firstName;
private String lastName;
public Address() {
super();
}
public Address(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
...
}
在那里显示的类没有extend
关键字。尽管如此,super()
在没有参数的构造函数中使用。
它调用Object类的构造函数吗?我对吗?
但是为什么?
拨打super()
这个电话的原因是什么?
你是对的,而且也没有理由。无论如何,Object类的构造函数都会被调用。 – Eran
无论类是否具有Object以外的超类,对“super()”的显式调用总是多余的,因为编译器会在您不这样做时添加一个,作为所有构造函数的第一条指令。发布的代码不一致,因为它在一个构造函数上使用super(),而在另一个构造函数中使用super()。我对在视频教程中发现那种丑陋的代码并不感到惊讶。 YouTube是为lolcats。免费的视频教程大多数时间质量很差。 –
如果没有明确指定,每个类都有一个超类:对象 –