1.题目:
1.abstract class Color2 {
2.//insert code here
3.}
4. public class Blue2 extends Color2 {
5. public String getRGB(){
6. return "blue";
7. }
8.}
4个声明:
public abstract String getRGB();
abstract String getRGB();
private abstract String getRGB();
protected abstract String getRGB();
分别插入到第2行,有多少行可以编译?
A 4 B 1 C 2 D 3
答案:D
这题考的是抽象类的知识点,抽象类中可以有普通方法(可以看下图)构造方法,也可以有抽象方法,抽象方法和抽象类都需要用关键字abstract 修饰,但是在抽象类中不能有权限为private的(会报错The abstract method d in type test1 can only set a visibility modifier, one of public or protected),抽象方法的访问权限只能是public、protected,如果抽象方法权限缺失,默认为public。抽象方法中可以有变量或者常量。
所以这题考的就是抽象方法的访问权限的问题,经过上面的总结可知答案为什么选D了。
2.
Given:
abstract public class Employee {
protected abstract double getSalesAmount();
public double getCommision() {
return getSalesAmount() * 0.15;
}
}
class Sales extends Employee {
// insert method here 17.
}
Which two methods, inserted independently at line 17, correctly complete the Sales class?
A
double getSalesAmount() {
return 1230.45;
}
B
public double getSalesAmount() {
return 1230.45;
}
C
private double getSalesAmount() {
return 1230.45;
}
D
protected double getSalesAmount() {
return 1230.45;
}
答案:BD
这个又考到方法重写(方法覆盖),权限大于或等于父类,最好一致。访问权限从大到小的顺序:public>protected>default>private
宝剑锋从磨砺出,梅花香自苦寒来。--冯梦龙
加油!小芳同学



