首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Tic Tac Tac Toe构造器

Java Tic Tac Tac Toe构造器
EN

Stack Overflow用户
提问于 2014-03-22 12:35:55
回答 2查看 602关注 0票数 0

我试着遵循这个教程:https://www.youtube.com/watch?v=Db3cC5iPrOM

2:59我不明白他在说什么。

我不明白他为什么在构造函数内创建构造函数(新TicTacToe();) (公共静态void (String args[]) )

代码语言:javascript
复制
public static void main(String args[]){
    new TicTacToe();
}

public TicTacToe(){
    super("TicTacToe");
}

我们就不能这样做吗?有什么关系呢?

代码语言:javascript
复制
public static void main(String args[]){
    super("TicTacToe");
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-22 12:38:35

super的意思是:在继承的情况下调用父构造函数。如果要使用new类,则必须调用TicTacToe在main方法中创建TicTacToe实例。

在进一步学习本教程之前,您可能需要了解继承、多态性

BaseTicTacToe -基类

代码语言:javascript
复制
public class BaseTicTacToe {
    private String name;

    public BaseTicTacToe(String name) {
        this.name = name;
    }
}

TicTacToe -儿童班

代码语言:javascript
复制
public class TicTacToe extends BaseTicTacToe {
    public TicTacToe() {
        super("TicTacToe");
    }
}

TicTacToeDriver

代码语言:javascript
复制
public class TicTacToeDriver {
    public static void main(String[] args) {
        new TicTacToe(); // Instatiate a new TicTacToe instance.
    }
}

您还可以看到以下内容,其中调用当前类中的另一个构造函数。

代码语言:javascript
复制
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"
    }
}
票数 1
EN

Stack Overflow用户

发布于 2014-03-22 12:38:12

main不是构造函数,它是一个静态方法,它是应用程序的入口点。因为它是一个静态方法,所以不需要创建类的实例来调用它。

您只能调用super在超类构造函数中调用超类的构造函数,而且由于main不是构造函数,所以第二个代码示例无效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22577671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档