第4章 继承与多态
一.选择题
1. 编译和运行以下两文件结果是( D )。
//文件P1.java
package MyPackage;
class P1{
void afancymethod(){
System.out.println("What a fancy method");
}
}
//文件 P2.java
package YourPackage;
import MyPackage.*;
public class P2 extends P1{
public static void main(String argv[]){
P2 p2 = new P2();
p2.afancymethod();
}
}
A.两个均通过编译,P2运行时输出 What a fancy method
B.没一个通过编译
C.两个均通过编译,但P2运行时出错
D.P1 通过编译,但P2出现编译错误
2.下列程序运行的结果是( A )。
package a;
package b;
public class D{
public static void main(String args[]) {
System.out.println("^_^,今天心情不错!");
}
}
A.出现编译错误
B.^_^,今天心情不错!
C.通过编译,运行时出错
D.以上都不对
3.Java的核心类库中哪个包,Java系统能自动引入( B )。
A.java.io B.java.lang
C.java D.java.util
4.下列程序运行结果是( A )。
private class Base{
Base(){
int i = 100;
System.out.println(i);
}
}
public class Pri extends Base{
static int i = 200;
public static void main(String argv[]){
Pri p = new Pri();
java重写和重载的区别 System.out.println(i);
}
}
A.编译错误 B.200 C.100 200 D.100
5.下列程序运行结果是( C )。
class Base{
Base(){
int i = 100;
System.out.println(i);
}
}
public class Pri extends Base{
static int i = 200;
public static void main(String argv[]){
Pri p = new Pri();
System.out.println(i);
}
}
A.编译错误 B.200 C.100 200 D.100
6.如何定义一个不能有子类的类Key( B )。
A.class Key { } B.final class Key { }
C.public class Key { } D.class Key {final int i;}
7.哪个选项可以做为以下方法的覆盖方法( A )。public void add(int a) {…}
A.public void add(int b) {…} B.void add(int a) {…}
C.public int add(int a) {…} D.public void add(float a) {…}
8.在子类构造方法的哪个地方可以调用超类的构造方法( B )。
A.任何地方
B.构造方法的第一条语句
C.构造方法的最后一条语句
D.不能在子类构造方法中调用超类的构造方法
9.下列程序的运行结果是( C )。
public class Test {
public static void test() {
this.print();
}
public static void print() {
System.out.println("Test");
}
public static void main(String args []) {
test();
}
}
A.输出Test
B.无输出结果
C.类编译错误,指示不能在static上下文中使用this
D.以上都不对
10.设有如下代码:
1. class Example{
2. String str;
3. Example(){
4. str= "example";
5. }
6. Example(String s){
7. str=s;
8. }
9. }
10. class Demo extends Example{
11. }
12. public class Test{
13. public void f () {
14. Example ex = new Example("Good");
15. Demo d = new Demo("Good");
16. }
17. }
以下哪行将导致错误( D )。
A.第3行 B.第6行 C.第10行 D.第15行
11.在Java中,如下的修饰符不是访问控制修饰符( A )。
A.static B.public C.protected D.private
12.试完成下述程序片段( D )。
public class Point{
int x,y;
public Point(int x,int y){
( )=x;
( )=y;
}
...
}
A.Point.x Point.y
B.无解
C.x1 y1
D.this.x this.y
13.在JAVA 中( C )。
A.一个子类可以有多个父类,一个父类也可以有多个子类
B.一个子类可以有多个父类,但一个父类只可以有一个子类
C.一个子类只可以有一个父类,但一个父类可以有多个子类
D.上述说法都不对
14.什么是在子类中创建一个和父类具有一样特征的方法,特征包括方法名字,参数个数,参数类型和方法返回值类型( A )。
A.覆盖(overloading) B.重载(overriding) C.继承(inheritance) D.none
15.哪个关键词在子类中用来访问与父类中一样的方法( A )。
A.super B.this C.static D.以上没有
16.哪个关键词用来引用当前类的对象( B )。
A.super B.this C.static D.以上没有
17.哪个修饰符定义的方法和变量只在定义它们的类中可见,而在其他的任何类中它们都
不可见( C )。
A.protected B.public C.private D.none of the above
18. 1. class Person {
2. public void printValue(int i, int j) {//... }
3. public void printValue(int i){//... }
4. }
5. public class Teacher extends Person {
6. public void printValue() {//... }
7. public void printValue(int i) {//...}
8. public static void main(String args[]){
9. Person t = new Teacher();
10. t.printValue(10);
11. }
12. }
第10行将调用的会是哪个方法( D )。
A.on line 2 B.on line 3 C.on line 6 D.on line 7
19.以下代码运行结果是( C )。
class Base {}
class Sub extends Base {}
class Sub2 extends Base {}
class CEx{
public static void main(String argv[]){
Base b = new Base();
Sub s = (Sub) b;
}
}
A.编译通过 B.编译错误 C.运行异常 D.以上都不对
20.设有如下类定义:
class BaseWidget {
String name="BaseWidget";
void speak(){
System.out.println("I am a "+name);
}
}
class TypeAWidget extends BaseWidget{
TypeAWidget(){
name="TypeA";
}
}
以下哪段代码将正确编译和执行( B )。
A.Object a=new BaseWidget(); a.speak();
B.BaseWidget b=new TypeAWidget(); b.speak();
C.TypeAWidget c=new BaseWidget(); c.speak();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论