答案同楼上。
其实没什么可解释的,这些都是JAVA的规定。第一题: B、E会导致编译错误,返回类型始终应该位于所有修饰符以后,final和abstract不能组合。C不是final方法,不能避免覆盖。第二题:A、B是静态内部类(也叫嵌套类),静态类不能直接访问非静态成员。D、内部类不能是protected
其实没什么可解释的,这些都是JAVA的规定。第一题: B、E会导致编译错误,返回类型始终应该位于所有修饰符以后,final和abstract不能组合。C不是final方法,不能避免覆盖。第二题:A、B是静态内部类(也叫嵌套类),静态类不能直接访问非静态成员。D、内部类不能是protected
A. final void methoda(){} // 正确
B. void final methoda(){} // final 要在void前
C. static void methoda(){} // 可以 override
D. static final void methoda(){} // 正确
E. final abstract void methoda(){} // abstract 的方法不可以是final 的所以为AD, 即 final 的方法不可以被覆写
24.( )
You need to insert an inner class declaration at line3. Which two inner class declarations are valid? (Choose Two)
1.public class OuterClass{
2.private double d1=1.0;
3.//inser code here
}
A. static class InnerOne{
public double methoda(){return d1;} // static 不能修饰class
B. static class InnerOne{
static double methoda(){return d1;} // 同上
C. private class InnerOne{
public double methoda(){return d1;} // 正确
D. protected class InnerOne{
static double methoda(){return d1;} // inner class 不能有static 的method
E. public abstract class InnerOne{
public abstract double methoda(); //正确所以是 ce
D应该错在:非static的内部类里不能有static方法。
D 第1,methoda方法是static的,而innerclass不是static的,static方法可以定义在outtclass里面,例如main函数;第2 因为d1不是static,而methoda是static的,所以D被淘汰;
C,E正确
第二题:A、B是静态内部类(也叫嵌套类),静态类不能直接访问非静态成员。D、内部类不能是protected
----------------------------------内部类可以是protected的,D的错误原因不在protected那里,而在与static
=======================================================================
TO milkbottle(奶瓶->好好学习,天天向上) static 不能修饰class,inner class 不能有static 的method
-----------------------------------
innerclass当然是static的,而且可以有static的方法
A. final void methoda(){}
B. void final methoda(){}
C. static void methoda(){}
D. static final void methoda(){}
E. final abstract void methoda(){}
A正确,B不知道,C可以被重构(overriding),D不知道,E错误,抽象类需要别的类来继承,怎么可能加final修饰符。
我还真没注意过他们的修饰符之间的顺序关系。
第2题我一直糊涂。
第二题:A、B是静态内部类(也叫嵌套类),静态类不能直接访问非静态成员。D、内部类不能是protected
----------------------------------内部类可以是protected的,D的错误原因不在protected那里,而在与static
-------------------------------------------------------------------------------不好意思, 我说错了, 我已经在后面那个回复里更正过来了.zbo(大门) :void不是修饰符, 是返回类型, 返回类型始终应该在方法名的前面, 修饰符的后面.