Naz*_*rke 26 java constructor super
我正在阅读一些代码.在构造函数中它有super()但是类实现了接口,当然它没有构造函数.那么它指的是哪个super()?
public class BoundingBox implements IBoundingVolume {
public BoundingBox() {
super();
mTransformedMin = new Number3D();
mTransformedMax = new Number3D();
mTmpMin = new Number3D();
mTmpMax = new Number3D();
mPoints = new Number3D[8];
mTmp = new Number3D[8];
mMin = new Number3D();
mMax = new Number3D();
for(int i=0; i<8; ++i) {
mPoints[i] = new Number3D();
mTmp[i] = new Number3D();
}
}
public interface IBoundingVolume {
public void calculateBounds(Geometry3D geometry);
public void drawBoundingVolume(Camera camera, float[] projMatrix, float[] vMatrix, float[] mMatrix);
public void transform(float[] matrix);
public boolean intersectsWith(IBoundingVolume boundingVolume);
public BaseObject3D getVisual();
}
Run Code Online (Sandbox Code Playgroud)
cow*_*wls 42
super()指扩展class(不是实现的接口).在这种情况下是Object
所以它会调用构造函数Object(什么都不做)
jfm*_*fmg 18
Super正在引用扩展类.默认情况下,它是Object类.Object中的构造函数不执行任何操作.换句话说,您可以删除此行,因为它不是必需的.
还请注意Oracle对此主题的评论:
如果构造函数未显式调用超类构造函数,则Java编译器会自动插入对超类的无参数构造函数的调用.如果超类没有无参数构造函数,则会出现编译时错误.对象确实有这样的构造函数,因此如果Object是唯一的超类,则没有问题.
资料来源:http://docs.oracle.com/javase/tutorial/java/IandI/super.html
| 归档时间: |
|
| 查看次数: |
64813 次 |
| 最近记录: |