R2-1
将以下哪种方法插入行6是不合法的。( ) 。
下面展示一些 内联代码片。
1.public class Test1 { 2. public float aMethod(float a,float b) throws 3. IOException { } 4. } 5.public class Test2 extends Test1{ 6. 7.}
(2分)
A.
public int aMethod(int a,int b)throws Exception{ }
B.
public float aMethod(float p,float q){ }
C.
public int aMethod(int a,int b)throws IOException{ }
D.
float aMethod(float a,float b){ }
R2-2
以下对继承的描述错误的是
(2分)
A.
Java中的继承允许一个子类继承多个父类
B.
父类更具有通用性,子类更具体
C.
当实例化子类时会递归调用父类中的构造方法
D.
Java中的继承存在着传递性
R2-3
声明成员变量时,如果不使用任何访问控制符(public, protected, private),则以下哪种类型的类不能对该成员进行直接访问 ( ) .
(2分)
A.
同一包中的非子类
B.
不同包中的子类
C.
同一类
D.
同一包中的子类
R2-4
下面的概念,哪个不是关于对象的多态性的体现。
(2分)
A.
方法的覆盖
B.
方法的继承
C.
对象的上、下转型
D.
方法的重载
R2-5
在面向对象方法中,继承定义了超类和子类的概念,子类在维持原有父类中方法签名不变的前提下,用适合于自己要求的实现去置换父类中的相应方法的实现称为____________。
(2分)
A.
多态
B.
重载(overloading)
C.
覆盖(overriding)
D.
继承
R2-6
下面说法不正确的是( )
(2分)
A.
子类在构造函数中可以使用super( )来调用父类的构造函数;
B.
一个子类的对象可以接收父类对象能接收的消息;
C.
当子类对象和父类对象能接收同样的消息时,它们针对消息产生的行为可能不同;
D.
父类比它的子类的方法更多;
R2-7
一个类在重写其父类的某个方法时,在重写方法的定义中,哪个部分可以与父类被重写方法的定义不同?
(2分)
A.
访问修饰符
B.
方法形参
C.
方法名
D.
返回值类型
R2-8
以下( )添加到ComputerBook中不会出错
下面展示一些 内联代码片。
class Book{ protected int getPrice(){ return 30; } } public class ComputerBook extends Book{ }
(2分)
A.
public int getPrice(){return 10;}
B.
protected int getPrice(int page){}
C.
int getPrice(){}
D.
protected float getPrice(){}
R2-9
下列选项中关于java中super关键字的说法错误的是
(2分)
A.
子类可以通过super关键字调用父类的方法
B.
子类可以通过super关键字调用父类的属性
C.
super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
D.
super关键字是在子类对象内部指代其父类对象的引用
R2-10
类Teacher和Student是类Person的子类,下面的代码中最后一句语句的运行结果是( ).
(2分)
下面展示一些 内联代码片。
Person p; Teacher t; Student s; //p,t and s are all non-null. if(t instanceof Person) {s=(Student)t;}
A.
编译时正确,但运行时错误
B.
表达式是合法的
C.
将构造一个Student对象
D.
表达式是错误的
R2-11
以下程序运行结果是
下面展示一些 内联代码片。
public class Test extends Father{ private String name="test"; public static void main(String[] args){ Test test = new Test(); System.out.println(test.getName()); } } class Father{ private String name="father"; public String getName() { return name; } }
(2分)
A.
编译出错
B.
test
C.
运行出错,无输出
D.
father
R2-12
将以下哪种方法插入行3是不合法的。
下面展示一些 内联代码片。
1.public class Test1{ 2. public float aMethod(float a,float b){ } 3. 4.}
(2分)
A.
public float aMethod(float c,float d){ }
B.
public float aMethod(float a, float b,float c){ }
C.
private float aMethod(int a,int b,int c){ }
D.
public int aMethod(int a, int b){ }
R2-13
以下描述正确的有
(2分)
A.
方法的重写应用在一个类的内部
B.
构造方法可以重写
C.
构造方法不能重载
D.
方法的重载与返回值类型无关
R2-14
A派生出子类B,B派生出子类C,对于如下Java源代码正确的说法是()。
下面展示一些 内联代码片。
1. A a0 =new A(); 2. A a1 =new B(); 3. A a2 =new C();
(2分)
A.
只有第1行能通过编译
B.
第1、2、3行能通过编译,但第2、3行运行时出错
C.
第1行、第2行和第3行的声明都是正确的
D.
第1、2行能通过编译,但第3行编译出错
R2-15
以下关于继承的叙述正确的是( )。
(2分)
A.
在Java中一个类不能同时继承一个类和实现一个接口
B.
在Java中一个类只能实现一个接口
C.
在Java中接口只允许单一继承
D.
在Java中类只允许单一继承
R2-16
Java中( ) 。
(2分)
A.
一个子类可以有多个父类,一个父类也可以有多个子类
B.
一个子类可以有多个父类,但一个父类只可以有一个子类
C.
上述说法都不对
D.
一个子类可以有一个父类,但一个父类可以有多个子类
R2-17
下面是People和Child类的定义和构造方法,每个构造方法都输出编号。在执行new Child(“mike”)的时候都有哪些构造方法被顺序调用?请选择输出结果 ( )
下面展示一些 内联代码片。
class People { String name; public People() { System.out.print(1); } public People(String name) { System.out.print(2); this.name = name; } } class Child extends People { People father; public Child(String name) { System.out.print(3); this.name = name; father = new People(name + ":F"); } public Child(){ System.out.print(4); } }
A.
432
B.
32
C.
312
D.
132
R2-18
以下对重载描述错误的是
(2分)
A.
方法重载只能发生在一个类的内部
B.
构造方法不能重载
C.
方法的返回值类型不是区分方法重载的条件
D.
重载要求方法名相同,参数列表不同
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)