加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 没有继承的类的构造函数中的super()

发布时间:2020-12-15 04:39:05 所属栏目:Java 来源:网络整理
导读:参见英文答案 super keyword without extends to the super class????????????????????????????????????2个 我在Java Video-Tutorial中看到过以下代码(类的缩写版本). public class Address { private String firstName; private String lastName; public Ad
参见英文答案 > super keyword without extends to the super class????????????????????????????????????2个
我在Java Video-Tutorial中看到过以下代码(类的缩写版本).

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()的原因是什么?

解决方法

在创建类的实例时,将调用超类的构造函数.如果您的类明确扩展,有两个选项:

>如果超类具有默认构造函数,则调用它;
>如果没有默认构造函数,则应指定调用的构造函数并为其发送相应的参数.

调用不带参数的super()基本上意味着你调用默认的构造函数.这没有必要,因为即使你没有明确地这样做,它也会被调用.

由于java中的所有对象都隐式地扩展了Object,因此在创建类的实例时始终会调用Object的默认构造函数. super()只是让它显而易见.但是,为什么我们应该对已经非常清楚的事情添加明确性.

此外,当您使用代码生成工具(例如Eclipse)时,IDE有时会添加它.

您可以阅读关于类/超类的consturtors如何在OCA准备的书中工作的非常好的描述:https://www.amazon.com/OCA-Certified-Associate-Programmer-1Z0-808/dp/1118957407

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读