关于继承构造方法的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 04:12:29
public class Tip {
private String title;
private String content;
private String time;
private int uid;

Tip(){
title="我是新手";
content="好的我们一起学";
time="2007-1-1 10:36";
System.out.println("帖子子类无参数构造方法\n标题:"+title+"\n内容:"+content+"\n发帖时间:"+time);
}

Tip(String title,String content,String time,int uid){
this.title=title;
this.content=content;
this.time=time;
this.uid=uid;
System.out.println("帖子有参数的构造方法\n标题:"+title+"\n内容:"+content+"\n发帖时间:"+time);
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;

子类的构造方法中必须调用其基类的构造方法。
子类可以在自己的构造方法中使super(argument_list)调用基类的构造方法。

或者使用this(arguement_list)调用本类的其他构造方法。

如果使你用super()调用基类的构造方法必须写在子类构造方法的第一行。

所以如果子类的构造方法中没有显示的调用基类的构造方法,那么系统自动调用基类中没有参数的构造方法。如果子类的构造方法中既没有显示的调用基类的构造方法,而且基类中也没有无参数的构造方法,则编译出错。

子类继承父类的话,当子类被实力化就会去调用父类的默认构造方法.这是不可改变的.如果你不想显示这些值,就把默认的构造方法里的代码都去掉.
另一种情况就是,你在实力化的时候传一些参数进去,就不会调用默认的构造函数了.前提是你传的参数要有相应的构造函数来匹配.
如果又想调用默认的构造函数的话,就用super();

你可以在父类里多写个构造方法 随便加个参数 然后把那些放这个构造方法里 默认构造方法里不写东西就ok了