Java:为什么有人会在默认情况下编写super()?

时间:2016-04-29 11:21:04

标签: java constructor super

为什么有人会写

super(); //(parameterless) 

在子类构造函数中,因为如果不存在,那么无论如何都会调用默认的无参数超类构造函数?

3 个答案:

答案 0 :(得分:2)

我通常使用IDE(即Eclipse)生成构造函数,它实际上放置了该调用,因此可能是其中一种情况

答案 1 :(得分:2)

无参数的super()构造函数只是超级构造函数列表的一部分,可以调用各种参数

from django.shortcuts import render
from django.http import HttpResponse
from books.models import Books

# Create your views here.
def index(request):
    list =  Books.Objects.all()
    return HttpResponse(list)

尽管由于样式原因,某些团队可能会要求调用,但是no-args super()的调用并没有实现任何功能,因此代码膨胀很简单。 (有些人喜欢这样。)

答案 2 :(得分:0)

明确(否则是隐含的)控制流程。

这样的代码用作提醒,超类默认构造函数实际上将在派生类的开头调用'构造函数。读取代码的人将有一个可视标记,提醒他们在想要知道构造实例时会发生什么时也检查超类构造函数。