1、下列哪个叙述是正确的?(A)
A.不可以同时用final和abstract修饰同一个方法。
B.abstract类中只可以有abstract方法。
C.final 类可以有子类。
D.abstract类中可以有非abstract方法,但该方法不可以用final修饰。
2、假设C是B的子类,B是A的子类,cat是C类的一个对象,bird是B类的一个对象,下列哪个叙述是错误的?(D)
A.cat instanceof A的值是true。
B.cat instanceof B的值是true。
C.bird instanceof A的值是true。
D.bird instanceof C的值是true。
3、给定下列程序,正确的输出是?(D)
class Base{
Base(int i){test();}
void test(){ System.out.println("Base.test()"); }
}
public class Child extends Base{
Child (int i){ super(i);
test();}
Child (float f){ this((int)f); }
void test(){ System.out.println("Child.test()"); }
public static void main(String arg[]) { new Child(10.8f).test(); }
}
A
Child.test()
B
编译失败
C
Child.test()
Child.test()
D
Child.test()
Child.test()
Child.test()
4、B是父类,C是子类。父类引用指向子类对象B b = new C()时,下列说法那个是错误的(D)
A.若子类未覆盖某属性,则父类引用调用父类本身的旧属性
B.若子类未覆盖某方法,则父类引用调用父类本身的旧方法
C.若子类定义了父类同名的某方法,则父类引用调用子类重新定义的新方法
D.若子类定义了父类同名的属性,父类引用调用子类的属性
*[HTML]:
父类引用指向子类对象时
- 若子类覆盖了某方法,则父类引用调用子类重新定义的新方法
- 若子类未覆盖某方法,则父类引用调用父类本身的旧方法
- 若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性
- 若子类未覆盖某属性,则父类引用调用父类本身的旧属性
- 父类引用不能访问子类新定义的方法
子类引用指向自身对象时
- 若子类覆盖了某方法,则子类引用调用子类重新定义的新方法
- 若子类未覆盖某方法,则子类引用调用父类本身的旧方法
- 若子类覆盖了某属性,则子类引用调用子类重新定义的新属性
- 若子类未覆盖某属性,则子类引用调用父类本身的旧属性
- 子类引用可以访问子类新定义的方法
5、如果子类和父类不在同一个包中,那么,子类继承了父类的()成员变量做为子类的成员变量,继承了父类的()方法为子类的方法(D)
A.private protected, private protected
B.private、public, protected、public
C.protected、public, private public
D.protected、public, protected、public
6、运行下面程序的结果是什么?©
abstract class MineBase {
abstract void amethod();
static int i;
}
public class Mine extends MineBase {
public static void main(String[] a) {
int[] ar = new int[5];
for (int i=0; i<ar.length; i++)
{ System.out.println(ar[i]); }
}
}
A.打印5个0
B.编译错误,数组ar[]必须初始化
C.编译错误,Mine应声明为抽象类
D.出现IndexOutOfBoundsException异常
7、指出下列程序中的错误(A)
final class First
{ private int a = 1;
int b = 2;
}
class Second extends First
{ protected int a = 2;
public void method()
{ System.out.println(a + b); }
}
A. Second类不能继承First类
B. 子类中重复定义变量a
C.println方法中参数类型错误,该方法只能接受字符串类型数据
D. 关键字final不能修饰First类
8、下列哪个叙述是正确的?(D)
A.abstract类的子类必须是非abstract类。
B. 子类继承父类的构造方法。
C.子类重写或新增的方法也能直接操作被子类隐藏的成员变量。
D.子类继承的方法只能操作子类继承和隐藏的成员变量。
9、关键字supper的作用是(D)
A.用来调用父类的构造函数
B.以上都是
C.用来调用父类中的方法
D.用来访问父类被隐藏的成员变量
10、子类的继承性相关的说法正确的是(ACD)
A.如果父类中的成员使用public修饰,子类无条件继承。
B.如果父类中的成员使用private修饰,子类也能继承到。
C.如果父类和子类在同一个包中,此时子类可以继承父类中缺省修饰符的成员。
D.父类的构造器,子类不能继承。
这是一组关于Java中继承和多态的选择题,涵盖了final和abstract的使用、instanceof关键字的应用、子类与父类之间的关系、访问权限控制、抽象类和方法等内容。通过这些题目,可以加深对Java继承和多态的理解。
857

被折叠的 条评论
为什么被折叠?



