+ -
当前位置:首页 → 问答吧 → 问问题

问问题

时间:2011-11-30

来源:互联网

public abstract class Animal {
protected int legs;
protected Animal(int legs){
this.legs = legs;
}

public abstract void eat();
public abstract void breath();

}
interface Pet{
public void play();
}
public class Dog extends Animal implements Pet{
String name;  
public Dog(String name){ //为什么会错的?在子类里的构造器不能多态吗?  
this.name = name;
}

public Dog(int legs){
super(legs);
}

public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public void eat(){
System.out.println("狗喜欢啃骨头");
}
public void breath(){
System.out.println("狗使用肺呼吸");
}
public void play(){
System.out.println("狗正在和一只可怜的老鼠逗着玩呢");
}
}

作者: WOOWLL   发布时间: 2011-11-30

需要在抽象类中加入无参的构造函数.....

作者: maosijunzi   发布时间: 2011-11-30

public Dog(String name){ //为什么会错的?在子类里的构造器不能多态吗?  
this.name = name;
}
该构造器里面会隐含的调用super(int dd)方法,也就是父类的构造方法! 去掉父类的构造方法即可!

作者: lizhongyi188   发布时间: 2011-12-01

引用 2 楼 lizhongyi188 的回复:

public Dog(String name){ //为什么会错的?在子类里的构造器不能多态吗?
this.name = name;
}
该构造器里面会隐含的调用super(int dd)方法,也就是父类的构造方法! 去掉父类的构造方法即可!

或者
public Dog(String name){ //为什么会错的?在子类里的构造器不能多态吗? 
super(int var) ;
this.name = name;
}
这样也行!

作者: lizhongyi188   发布时间: 2011-12-01