class Animal
{
//desc实例变量保存对象toString方法的返回值
private String desc;
public Animal()
{
//调用getDesc()方法初始化desc实例变量
this.desc = getDesc();
}
public String getDesc()
{
System.out.println("Animal::getDesc()");
return "Animal";
}
public String toString()
{
return desc;
}
}
public class Wolf extends Animal
{
//定义name、weight两个实例变量
private String name;
private double weight;
public Wolf(String name , double weight)
{
//为name、weight两个实例变量赋值
this.name = name;
this.weight = weight;
}
//重写父类的getDesc()方法
@Override
public String getDesc()
{
System.out.println("Wolf::getDesc()");
return "Wolf[name=" + name + " , weight="
+ weight + "]";
}
public static void main(String[] args)
{
System.out.println(new Wolf("灰太郎" , 32.3));
}
}
/*
Wolf::getDesc()
Wolf[name=null , weight=0.0]
请按任意键继续. . .
*/
class Animal
{
//desc实例变量保存对象toString方法的返回值
private String desc;
public Animal()
{
//调用getDesc()方法初始化desc实例变量
//this.desc = getDesc();
}
public String getDesc()
{
System.out.println("Animal::getDesc()");
return "Animal";
}
public String toString()
{
//调用getDesc()方法初始化desc实例变量
this.desc = getDesc();
return desc;
}
}
public class Wolf extends Animal
{
//定义name、weight两个实例变量
private String name;
private double weight;
public Wolf(String name , double weight)
{
//为name、weight两个实例变量赋值
this.name = name;
this.weight = weight;
}
//重写父类的getDesc()方法
@Override
public String getDesc()
{
System.out.println("Wolf::getDesc()");
return "Wolf[name=" + name + " , weight="
+ weight + "]";
}
public static void main(String[] args)
{
System.out.println(new Wolf("灰太郎" , 32.3));
}
}
/*
Wolf::getDesc()
Wolf[name=灰太郎 , weight=32.3]
请按任意键继续. . .
*/