我试着遵循这个教程:https://www.youtube.com/watch?v=Db3cC5iPrOM
2:59我不明白他在说什么。
我不明白他为什么在构造函数内创建构造函数(新TicTacToe();) (公共静态void (String args[]) )
public static void main(String args[]){
new TicTacToe();
}
public TicTacToe(){
super("TicTacToe");
}我们就不能这样做吗?有什么关系呢?
public static void main(String args[]){
super("TicTacToe");
}发布于 2014-03-22 12:38:35
super的意思是:在继承的情况下调用父构造函数。如果要使用new类,则必须调用TicTacToe在main方法中创建TicTacToe实例。
在进一步学习本教程之前,您可能需要了解继承、和多态性。
BaseTicTacToe -基类
public class BaseTicTacToe {
private String name;
public BaseTicTacToe(String name) {
this.name = name;
}
}TicTacToe -儿童班
public class TicTacToe extends BaseTicTacToe {
public TicTacToe() {
super("TicTacToe");
}
}TicTacToeDriver
public class TicTacToeDriver {
public static void main(String[] args) {
new TicTacToe(); // Instatiate a new TicTacToe instance.
}
}您还可以看到以下内容,其中调用当前类中的另一个构造函数。
public class TicTacToe {
private String name;
// Default constructor.
public TicTacToe() {
this("TicTacToe"); // Call the constructor below.
}
// Overloaded constructor (polymorphism)
public TicTacToe(String name) {
this.name = name;
}
public static void main(String[] args) {
new TicTacToe(); // Call default: "TicTacToe"
new TicTacToe("My Name"); // Call overload: "My Name"
}
}发布于 2014-03-22 12:38:12
main不是构造函数,它是一个静态方法,它是应用程序的入口点。因为它是一个静态方法,所以不需要创建类的实例来调用它。
您只能调用super在超类构造函数中调用超类的构造函数,而且由于main不是构造函数,所以第二个代码示例无效。
https://stackoverflow.com/questions/22577671
复制相似问题