一、问答题
1.子类可以有多个父类吗?
答案:不可以
2.java.lang包中的Object类是所有其他类的祖先类吗?
答案:是
3.如果子类和父类不在同一个包中,子类是否继承父类的友好成员? 答案:不继承
4.子类怎样隐藏继承的成员变量?
答案: 声明与父类同名的成员变量
5.子类重写方法的规则是怎样的?重写方法的目的是什么?
答案:子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型,重写的方法的名字、参数个数、参数的类型和父类的方法完全相同。重写方法的目的是隐藏继承的方法。
6.父类的final方法可以被子类重写吗?
答案:不可以
7.什么类中可以有abstract方法?
答案:abstract类
8.对象的上转型对象有怎样的特点?
答案:上转型对象不能操作子类新增的成员变量;不能使用子类新增的方法。上转型对象可以操作子类继承或者隐藏的成员变量,也可以使用子类继承的或者重写的方法。上转型对象操作子类继承或重写的方法,其作用等价于子类对象去调用这些方法。因此,如果子类重写了父类的某个方法,则当对象的上转型对象调用这个方法时一定是调用了这个重写的方法。
9.一个类的各个子类是怎样体现多态的?
答案:通过重写
10.面向抽象编程的目的和核心是什么?
答案:目的是为了应对用户需求的变化,核心是让类中每种可能的变化对应地交给抽象类的一个子类类去负责,从而让该类的设计者不去关心具体实现。
二、选择题
1.下列哪个叙述是正确的?
A. 子类继承父类的构造方法。
B. abstract类的子类必须是非abstract类。
C. 子类继承的方法只能操作子类继承和隐藏的成员变量。
D. 子类重写或新增的方法也能直接操作被子类隐藏的成员变量。
答案:C
2.下列哪个叙述是正确的?
A. final 类可以有子类。
B. abstract类中只可以有abstract方法。
C. abstract类中可以有非abstract方法,但该方法不可以用final修饰。
D. 不可以同时用final和abstract修饰同一个方法。
E. 允许使用static修饰abstract方法。
答案:D
3.下列程序中注释的哪两个代码(A,B,C,D)是错误的(无法通过编译)?
class Father {
private int money =12;
float height;
int seeMoney(){
return money ; //A
}
}
class Son extends Father {
int height;
int lookMoney() {
int m = seeMoney(); //B
return m;
}
}
class E {
public static void main(String args[]) {
Son erzi = new Son();
erzi.money = 300; //C
erzi.height = 1.78F; //D
}
}
答案:CD
4.假设C是B的子类,B是A的子类,cat是C类的一个对象