Java 有效的对象声明和使用点运算符

Java 有效的对象声明和使用点运算符,java,object,Java,Object,对于这个类,我不明白为什么Top t=new Top是无效的声明?要使创建的对象t有效,它是否必须具有传递参数 为什么1个顶部t=新底部,2个顶部t=新顶部3有效?我是java新手,底层类是否有空构造函数,因此1是有效的 另外,比如说Top t=new Middle2,我如何在不使用代码的情况下继续计算出t.Top是什么?就像点运算符总是把我甩了一样,我想的是对象t与顶部变量的属性相关联?它应该等于4,但我想弄清楚,但这些概念现在对我来说太陌生了。如有任何解释,将不胜感激 我不明白为什么Top

对于这个类,我不明白为什么Top t=new Top是无效的声明?要使创建的对象t有效,它是否必须具有传递参数

为什么1个顶部t=新底部,2个顶部t=新顶部3有效?我是java新手,底层类是否有空构造函数,因此1是有效的

另外,比如说Top t=new Middle2,我如何在不使用代码的情况下继续计算出t.Top是什么?就像点运算符总是把我甩了一样,我想的是对象t与顶部变量的属性相关联?它应该等于4,但我想弄清楚,但这些概念现在对我来说太陌生了。如有任何解释,将不胜感激

我不明白为什么Top t=新Top


因为Top没有args构造函数。如果像在Bottom中那样添加一个,它将变得有效。

初始化构造函数Topint top时,将int作为参数,因此在调用构造函数时必须传递int。 它的工作原理与您使用的普通方法相同。
参数类型必须与参数类型匹配。不能将void参数传递给使用int或double参数初始化的方法。

将问题本身中的代码作为文本发布。不是作为图像的链接。我们无法从图像复制和粘贴。盲人看不懂图像。因为Top不是抽象的。为什么Top应该知道子类提供了一个默认的构造函数呢?而且根本不存在这样的东西
public class Top{ 
    public int top = 1;
    public Top(int top){ this.top = top; }
}
public class Middle extends Top{
    public Middle(int top){
        super(top);
        this.top = this.top + top;
    }
}
public class Bottom extends Middle{
    public Bottom(){ super(3); }
    public Bottom(int top){
        super(top);
        this.top = top;
    }
}