已知有如下定义:package cn.edu.ncu.chenyi;public interface Runnable{public void run();}package cn.edu.ncu.chenyi;public abstract class Animal implements Runnable{public void run();}关于上述两个代码说法正确的是?
A: Animal编译失败,因为Animal类实现接口,不能定义为抽象类
B: Animal编译失败,因为Animal类实现接口Runnable,方法run的方法不是抽象方法,方法体不能为空;
C: Animal编译失败,需要在方法run中增加修饰符abstract才能修改正确,形如:package cn.edu.ncu.chenyi;public abstract class Animal implements Runnable{ public abstract void run();}
D: Animal编译成功,代码正确;
E: 以上说法均不正确
A: Animal编译失败,因为Animal类实现接口,不能定义为抽象类
B: Animal编译失败,因为Animal类实现接口Runnable,方法run的方法不是抽象方法,方法体不能为空;
C: Animal编译失败,需要在方法run中增加修饰符abstract才能修改正确,形如:package cn.edu.ncu.chenyi;public abstract class Animal implements Runnable{ public abstract void run();}
D: Animal编译成功,代码正确;
E: 以上说法均不正确
举一反三
- 已知有如下代码:public abstract class Animal{public abstract void run();public abstract void eat();}public class Tiger extends Animal{}则关于上述两个类说法正确的是? A: Animal是Tiger的父类 B: Tiger是Animal的子类 C: Tiger是抽象类,因为它继承了抽象类 D: Tiger类编译失败,因为它继承了Animal抽象类的方法,并没有对这些方法定义,所以编译失败 E: Tiger类编译成功
- 接口Animal声明如下:public interface Animal{ void Move();}则下列抽象类的定义中, 是合法的。 A: abstract class Cat: Animal { abstract public void Move(); } B: abstract class Cat: Animal { virtual public void Move(){Console.Write(Console.Write("Move!");)} } C: abstract class Cat: Animal { public void Move(){Console.Write(Console.Write("Move!");)}; } D: abstract class Cat: Animal { public void Eat(){Console.Write(Console.Write("Eat!");)}; }
- 下列关于Test类的定义代码中,正确的是______。 A: class Test implements Runnable { public void run() {} public void someMethod() {} } B: class Test implements Runnable { public void run(); } C: class Test implements Runnable { public void someMethod(); } D: class Test implements Runnable { public void someMethod() {} }
- 请阅读下面的程序,写出运行结果,如果编译失败,写明失败原因。 abstract class Animal{ public final abstract void eat(); } class Cat extends Animal{ public void eat(){ System.out.println("cat...fish"); } } class CatDemo{ public static void main(String[] args){ Animal a = new Cat(); a.eat(); } }
- 下列哪个方法可用于创建一个可运行的类X? A: public class X implements Runnable{ public void run(){......} } B: public class X implements Thread{ public void run(){......} } C: public class X implements Thread{ public int run(){......} } D: public class X extends Runnable{ public void run(){......} }