美文网首页
Java疑惑2-为什么LinkedList实现中,其含参构造函数

Java疑惑2-为什么LinkedList实现中,其含参构造函数

作者: shaYanL | 来源:发表于2018-08-01 23:52 被阅读0次

疑惑来源
如下代码,可以看到在LinkedList的一个含参构造函数中调用了this(),这里的调用this()相当于调用默认无参构造函数LinkedList()

    //默认构造函数
    public LinkedList() {
    }
    //通过一个集合初始化LinkedList,元素顺序有这个集合的迭代器返回顺序决定
    public LinkedList(Collection<? extends E> c) {
        this();//这里的this()到底有什么作用
        addAll(c);
    }

疑惑内容
然而无参构造函数中什么也没做,那为什么还要这么调用呢?这样做有什么好处?
解析

  • 好处1:减少编译器添加super()方法的数量,这算好处么?
    众所周知,如果不在子类的构造函数中显示调用父类的构造函数【即:super()方法】,那么编译器会自动给子类构造函数添加super()方法,通过this()的调用,这样就只用给默认构造函数LinkedList()添加super()方法了
  • 好处2:好处1都很牵强。。。求大神分析分析这么用到底有好处没有。

相关文章

  • Java疑惑2-为什么LinkedList实现中,其含参构造函数

    疑惑来源如下代码,可以看到在LinkedList的一个含参构造函数中调用了this(),这里的调用this()相当...

  • java中this的几种用法

    今天来分析一下Java中this关键字 this的几种用法 调用其他构造函数 这里我们使用一个含参的构造函数调用了...

  • Java反射(二)

    类 反射调用一:调用无参构造函数 反射调用二:调用含参构造函数

  • LinkedList的用法

    如何构造 // 默认构造函数LinkedList()// 创建一个LinkedList,保护Collection中...

  • 常用数据结构

    Stack 构造函数:Stack() Queue(接口) 实现:LinkedList

  • Dart构造函数

    默认构造函数 不声明构造函数,则提供默认的无参构造,和java类似。 普通构造函数 另外一种构造方法写法:(减少代...

  • C++中的构造函数

    C++中构造函数有三类 无参构造函数 有参构造函数 代码形式 调用有参构造函数的三种方式:2.1) 括号法 2.2...

  • 资格赛总结

    类比较多时,先从最基本的类开始覆盖类的构造函数。构造函数有多个时,先覆盖无参数的构造函数,然后可以将新的含参构造函...

  • C++:再论构造函数分类和调用时机以及匿名对象

    原创请注明出处: 我们这里主要讨论构造函数的构造函数的分类和其调用时机测试类如下: 1、默认构造函数和无参构造函数...

  • 构造函数,构造代码块

    构造函数 构造函数的作用 如果一个类没有显式的声明构造函数,Java编译器在编译时会自动添加一个无参的构造函数,当...

网友评论

      本文标题:Java疑惑2-为什么LinkedList实现中,其含参构造函数

      本文链接:https://www.haomeiwen.com/subject/swpqvftx.html