日期:2014-05-20 浏览次数:20668 次
class Creature { public Creature() { System.out.println( "Creature无参数的构造器 "); //1父类会被Animal(String name)隐式调用 } } class Animal extends Creature { public Animal(String name) { System.out.println( "Animal带一个参数的构造器,该动物的name为 " + name); //2被本类的Animal(String name, int age)调用 } public Animal(String name , int age) { //使用this调用同一个重载的构造器 this(name); System.out.println( "Animal带2个参数的构造器,其age为 " + age); //3被子类Wolf调用 } } public class Wolf extends Animal { public Wolf() { //显式调用父类有2个参数的构造器 super( "土狼 ", 3); System.out.println( "Wolf无参数的构造器 "); //4最后打印 } public static void main(String[] args) { new Wolf(); } }
------解决方案--------------------
参考下这个,根据你的程序体会一下:
http://wenwen.soso.com/z/q191435823.htm
------解决方案--------------------
会先对父类进行初始化,然后才会进行到本身的显示的调用。
------解决方案--------------------
父类的初始化先调用,然后再显示的调用