当前位置: 代码迷 >> Java相关 >> 抽象类怎么实现接口定义的部分方法呀?
  详细解决方案

抽象类怎么实现接口定义的部分方法呀?

热度:122   发布时间:2007-10-26 00:07:22.0
抽象类怎么实现接口定义的部分方法呀?

interface Runner{
int ID = 1;
void run();
}

interface Animal extends Runner{
void breathe();
}

abstract class LandAnimal implements Animal{
public void breathe(){
System.out.println("LandAnimal");
}
}

public class TestInterface_01 {
public static void main(String[] args) {
LandAnimal L = new LandAnimal();
L.breathe();
}
}
抽象类怎么实现接口定义的部分方法呀?
我这个编译不能通过呢?那错了呢?

[此贴子已经被作者于2007-10-26 0:07:47编辑过]

搜索更多相关的解决方案: 接口  定义  

----------------解决方案--------------------------------------------------------
抽象类是不能直接实例化的,你能new的类,是不允许是抽象的

像你的LandAnimal要想能实例化的话,你还必须实现run方法,它是定义在Runner里面的,然后再把它前面的abstract去掉

----------------解决方案--------------------------------------------------------

那像楼主这种Animal接口继承了Runner接口,如果有个类(不加abstract关键字)实现Animal接口,

那是不是笔下同时实现其父接口的方法,要不该类也强制被看作抽象类?


----------------解决方案--------------------------------------------------------
谢谢,千里冰封大兄弟!
还有个问题呀
为什么我的"interface Runner" 前面不能加"public"呢?一加就出错呢?
我看有的书上,interface前面加public了呀

----------------解决方案--------------------------------------------------------

interface Runner{
int ID = 1;
void run();

}

interface Animal extends Runner{
void swim();
}

abstract class LandAnimal implements Animal{
public abstract void run();
//public abstract void swim();

}
class Cat extends LandAnimal{
public void run() {System.out.println("陆地动物会跑");}
public void swim() {System.out.println("陆地动物会游泳的少");}
}

public class TestInterface_01 {
public static void main(String[] args) {
LandAnimal c = new Cat();
c.run();
}
}
这样用"abstract"应该对了吧.

[此贴子已经被作者于2007-10-26 14:48:23编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案