(不定项选择题)在Java中下面Class的声明哪些是错误的?
A public abstract final class Test { abstract void method(); } B public abstract class Test { abstract final void method(); } C public abstract class Test { abstract void method() { } } D public class Test{ final void method() { } }
考点:考察求职者对类的声明的理解
出现频率:★★★★★
【面试题分析】
A.被final修饰的类为最终类,不能被继承,而类前面如果有abstract修饰,则为抽象类,抽象类是需要被继承才有意义,因此abstract和final矛盾,选项错误。 B.被final修饰的方法为最终方法,不能被继承,而方法前面如果有abstract修饰,则为抽象方法,抽象方法是需要被继承才有意义,因此abstract和final矛盾,选项错误。 C.抽象类中的抽象方法不能有具体的实现,而选项中的 abstract void method() {}中{}代表有具体的实现,因此此处应该为abstract void method(); 注意: abstract 不能与private、static、final或native并列修饰同一个方法。
所以参考答案是 (A) (B) (C)