我查看本教程: http://www.developerfeed.com/building-todo-list-app-android-using-sqlite
我不明白的是这段代码:
public Task()
{
this.taskName=null;
this.status=0;
}
public Task(String taskName, int status) {
super();
this.taskName = taskName;
this.status = status;
}
为什么需要在这一点上调用super()?
编辑:我之所以问的原因是因为我个人觉得没有必要把它放在那里。
答案 0 :(得分:1)
不需要调用没有参数的super()。当您调用子类的构造函数时,将自动调用0参数超类构造函数。无论你是否打电话都没关系。
答案 1 :(得分:1)
super()专门调用当前类继承的类的构造函数。
在这种情况下,对super()方法的调用是调用Object类的构造函数,所有类都是原始继承的。
你是对的;在这种特殊情况下,根本不需要或不需要调用super()。
使用super()的示例可以通过JFrame类的引用轻松完成。
public class MyFrame extends JFrame {
public static final String TITLE = "My JFrame";
public MyFrame() {
//call constructor of super class (JFrame)
//the String parameter is the title of the frame
super(TITLE);
//other code here
}
//assume other methods are here
}
答案 2 :(得分:1)
为什么需要在这一点上调用super()?
没有这样的需要。编译器默认将它放入。
答案 3 :(得分:0)
super(),用于调用父构造函数,我认为你的类不是从某个类扩展的,所以在JAVA中纯类,从Object扩展。当你调用super()时,你在这种情况下调用父构造函数Object()。
我的构造函数public Task(String taskName, int status)
您没有打电话给public Task()
您的类正在调用Object构造函数Object()
。
检查一下。 http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
答案 4 :(得分:0)
Super用于调用父类。扩展类时,可以从子类中的父类调用函数或变量。
例如,看看这个伪代码,哪个子代使用父类
中定义的intPublic class Child extends Father{
Int age = 21;
Int ageDiff = Super.age - age;
}
不需要代码中的超级。