Java构造函数超级参数

时间:2013-02-15 15:45:26

标签: java class inheritance constructor

查看抽象类ByteBuffer的代码,显然它继承自基类Buffer

ByteBuffer有一个构造函数:

ByteBuffer(int capacity) {
    super(capacity);
}

Buffer有一个构造函数:

Buffer(int mark, int pos, int lim, int cap) { 
    ...
}

所以我的问题是 - 当ByteBuffer调用它的父构造函数时,这是如何工作的,因为参数不匹配?

更新:这是一个非问题,但值得一提的是,一些在线Java源代码库(本例中为docjar)持有一个混搭Java源码。最好下载JDK **

2 个答案:

答案 0 :(得分:4)

似乎是文档错误。

来自GrepCode的ByteBuffer来源是正确的。

  ByteBuffer(int mark, int pos, int lim, int cap,   // package-private
274                  byte[] hb, int offset)
275     {
276         super(mark, pos, lim, cap);
277         this.hb = hb;
278         this.offset = offset;
279     }
280 

答案 1 :(得分:0)

我担心看起来像你正在看的Buffer类已经过时了 - 目前的javadoc有:

ByteBuffer(int mark, int pos, int lim, int cap) {   // package-private
ByteBuffer(int mark, int pos, int lim, int cap,          // package-private
  byte[] hb, int offset)