关于类的继承,重写的问题,求教!!!
创建一个Animal(动物类),
让Horse(马),Dog(狗),Cat(猫)等动物继承Animal类。
在Animal类中定义SetName( )方法(用来设置动物名)、
SetDate()方法(用来设置动物的出生日期)和show()方法
(用来输出动物名和出生日期),让其子类重写这些方法。
class animal{
String Name;
int year,month,day;
public void SetName(String n){
this.Name=n;
}
public void SetData(int year,int month,int day){
this.year=year;
this.month=month;
this.day=day;
}
public void SetShow(){
System.out.println( "Name= "+Name);
System.out.println( "brithday= "+year+ ". "+month+ ". "+day);
}
}
class Horse extends animal{
public static void main(String args[]){
animal aa=new animal();
aa.SetName( "xx ");
aa.SetData(1996,5,1);
aa.SetShow();
}
}
做到这步.但重写就不会了..求代码
------解决方案--------------------只要在子类中写与父类方法一样的返回类型,一样的参数个数,以及参数类型,那么子类就覆盖了父类方法,若要引用父类方法可用super.method_name(参数列表),我就把你的代码随便改了一下,就很容易看出这点,如下:
class animal{
String Name;
int year,month,day;
public void SetName(String n){
this.Name=n;
}
public void SetData(int year,int month,int day){
this.year=year;
this.month=month;
this.day=day;
}
public void SetShow(){
System.out.println( "Name= "+Name);
System.out.println( "brithday= "+year+ ". "+month+ ". "+day);
}
}
class Horse extends animal{
String Name;
public void SetName(String n){
super.SetName(n);
this.Name=n + "sub ";
}
public void SetShow(){
super.SetShow();
System.out.println( "The Name in subclass is " + Name);
System.out.println( "The Name in subclass is " + super.Name);
}
public static void main(String args[]){
Horse aa=new Horse();
aa.SetName( "xx ");
aa.SetData(1996,5,1);
aa.SetShow();
}
}