为了账号安全,请及时绑定邮箱和手机立即绑定

这个向上演示是如何工作的?

这个向上演示是如何工作的?

绝地无双 2021-06-14 12:10:20
我创建了一个向上转换的演示,我不明白这段代码是如何工作的,或者我可以更具体地说,为什么在派生类完成调度时还调用基类的构造函数。甚至没有调用基类的构造函数。除了基类的构造函数如何调用之外,我什至没有在任何地方使用 super 关键字。class Base{        int value =0;        Base(){            addValue();        }        void addValue(){            value+=10;        }        int getValue(){            return value;        }}class Derived extends Base{    Derived()    {        addValue();    }    void addValue(){        value+=20;    }}class Test{    public static void main(String args[]){        Base b=new Derived();        System.out.println(b.getValue());    }}
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

派生对象是基础对象,以及更多。Java 和大多数语言一样,需要构造整个对象,包括由 Base 构造函数初始化的部分。

看看是这样的:什么是将value的初始设置为0?那不也是 Base 代码的一部分吗?

super如果您愿意,Java 允许您指定要使用的基类构造函数,但如果您不指定,它将选择一个。这些规则可能很复杂,但在这种情况下它们很简单:从无参数派生构造函数调用无参数 Base 构造函数。

作为测试,将 Base() 构造函数设置为私有并查看编译器告诉您的内容。


查看完整回答
反对 回复 2021-06-23
  • 2 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信