不要在构造函数中调用以后会被子类重写的方法

来源:互联网 发布:偷看别人聊天记录软件 编辑:程序博客网 时间:2024/04/29 00:00
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()方法@Overridepublic 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()方法@Overridepublic 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]请按任意键继续. . .*/


原创粉丝点击