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编辑过]
----------------解决方案--------------------------------------------------------