日期:2014-05-18  浏览次数:20751 次

java子类调用父类的构造函数
class Animal{
   private String name;
   public Animal(String name) {
     this.name = name;
   }
}
public Dog extends Animal{
   public Dog(){
     super("小狗");
   }
}


在Dog类的构造方法中调用父类的构造方法,可是有什么用呢?在父类中name是private的,super("小狗");这一句话只是把Animal类中的private String name;初始化成了private String name=“小狗”;
还是我的理解错了?
------解决方案--------------------
给你写了一个完整点的代码,你看看哪里不懂吧

public class Demo{
    public static void main(String args[]){
Dog dog = new Dog("小狗");
System.out.println(dog.getName());

Animal a = new Animal("动物");
System.out.println(a.getName());

dog.setName("我是小狗");
System.out.println(dog.getName());

a.setName("我是动物");
System.out.println(a.getName());
}
}
class Animal{
private String name;
Animal(){
}
Animal(String name){
this.name = name;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
class Dog extends Animal{
Dog(){
}
Dog(String name){
super(name);
}
}
}