下面的程序那里出错了 public class Test{ public static void main(String[] args){ Father object=new Ch
publicclassTest{publicstaticvoidmain(String[]args){Fatherobject=newChild(3,"red");dis...
public class Test{
public static void main(String[] args){
Father object=new Child(3,"red");
displayObject(object);
}
public static void displayObject(Father object){
System.out.println("Date is "+ object.getdate()+".Color is"+object.getcolor());
}
}
class Father{
private int Date=1;
private String Color="white";
public int getdate(){
return Date;
}
public Father(int Date,String Color){
this.Date=Date;
this.Color=Color;
}
public void setdate(int date){
this.Date=date;
}
public String getcolor(){
return Color;
}
public void setcolor(String color){
this.Color=color;
}
}
class Child extends Father{
public Child(int date,String color){
setdate(date);
setcolor(color);
}
} 展开
public static void main(String[] args){
Father object=new Child(3,"red");
displayObject(object);
}
public static void displayObject(Father object){
System.out.println("Date is "+ object.getdate()+".Color is"+object.getcolor());
}
}
class Father{
private int Date=1;
private String Color="white";
public int getdate(){
return Date;
}
public Father(int Date,String Color){
this.Date=Date;
this.Color=Color;
}
public void setdate(int date){
this.Date=date;
}
public String getcolor(){
return Color;
}
public void setcolor(String color){
this.Color=color;
}
}
class Child extends Father{
public Child(int date,String color){
setdate(date);
setcolor(color);
}
} 展开
3个回答
展开全部
你这么写编译不会通过得,你可以看eclipse报错,自己研究,不懂再问,这样对学习比较好。
很明显,如果子类继承了父类,没有显示调用父类构造方法,程序就会自动隐式调用父类的无参构造方法,但是你的父类没有无参构造方法,这样子类就会编译不通过。1。为父类加无参构造方法2.子类调用父类有参构造方法
很明显,如果子类继承了父类,没有显示调用父类构造方法,程序就会自动隐式调用父类的无参构造方法,但是你的父类没有无参构造方法,这样子类就会编译不通过。1。为父类加无参构造方法2.子类调用父类有参构造方法
追问
怎么显示的调用父类的构造方法,调用后有什么用,super()调用后对子类有什么影响,可不可以father()调用
追答
对,就是用super()这个语法,不能用fateher(), 直接super(Date,Color) 就ok了。
如果你定义了无参的构造方法,就直接super()就可以了。但记住super()一定要再第一句。
展开全部
只要在Child中加入一句话:
class Child extends Father{
public Child(int date,String color){
super(date,color); //记得要调用父类的构造方法
setdate(date);
setcolor(color);
}
}
子类里边的构造方法一定要调用父类的构造方法,如果父类有默认的无参构造方法,那么子类可以不用显式的调用父类构造方法,因为系统会自动调用,但是你的Father类没有默认的无参构造方法,所以系统不会自动调用,那么你就要自己显式的调用父类定义的构造方法了(这一步是不能省略的)
还有不懂的可以追问
class Child extends Father{
public Child(int date,String color){
super(date,color); //记得要调用父类的构造方法
setdate(date);
setcolor(color);
}
}
子类里边的构造方法一定要调用父类的构造方法,如果父类有默认的无参构造方法,那么子类可以不用显式的调用父类构造方法,因为系统会自动调用,但是你的Father类没有默认的无参构造方法,所以系统不会自动调用,那么你就要自己显式的调用父类定义的构造方法了(这一步是不能省略的)
还有不懂的可以追问
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class Child extends Father{
public Child(int date,String color){
super(date,color);
}
}
或者给Father加一个无参的构造函数
public Child(int date,String color){
super(date,color);
}
}
或者给Father加一个无参的构造函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询