1-1
如果一个类的声明中没有使用extends关键字,这个类被系统默认为是继承Object类。 (1分)
T
作者: 王从银
单位: 吉首大学
1-2
为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口。 (1分)
T
作者: 王从银
单位: 吉首大学
1-3
接口中的方法默认是public abstract方法。 (1分)
T
作者: 王从银
单位: 吉首大学
1-4
类在实现接口方法时必须给出方法体,并且一定要用public来修饰。 (1分)
T
作者: 王从银
单位: 吉首大学
1-5
一个Java源文件就是由类和接口组成的。 (1分)
T
作者: 从银
单位: 吉首大学
1-6
如果一个类声明实现一个接口,但没有实现接口中的所有方法,那么这个类必须是abstract类。 (1分)
T
作者: 王从银
单位: 吉首大学
1-7
类在实现接口的方法时,必须显式地使用public修饰符。 (1分)
T
作者: 王从银
单位: 吉首大学
1-8
一个类只能有一个父类,但一个接口可以有一个以上的父接口。 (1分)
T
作者: 王从银
单位: 吉首大学
1-9
一个类可以实现多个接口。 (1分)
T
作者: 王从银
单位: 吉首大学
1-10
一个接口可以继承其他接口。 (1分)
T
作者: 王从银
单位: 吉首大学
1-11
接口中的方法默认都是静态的。 (1分)
F
作者: 王从银
单位: 吉首大学
1-12
接口中的属性,都是静态常量。 (1分)
T
作者: 王从银
单位: 吉首大学
1-13
抽象类中不能有private的成员,所有的抽象方法必须存在于抽象类中。 (1分)
T
作者: 王从银
单位: 吉首大学
1-14
抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。。 (1分)
F
作者: 王从银
单位: 吉首大学
1-15
抽象类必须有抽象方法。 (1分)
F
作者: 王从银
单位: 吉首大学
1-16
覆盖只能在不同的类中完成。 (1分)
F
作者: 王从银
单位: 吉首大学
1-17
Object是Java中所有类的共同父类。 (1分)
T
作者: 王从银
单位: 吉首大学
1-18
abstract类中定义的方法只能是abstract方法。 (1分)
F
作者: 王从银
单位: 吉首大学
1-19
abstract可以与final同时修饰同一个类。 (1分)
F
作者: 王从银
单位: 吉首大学
1-20
子类不继承父类的构造方法。 (1分)
T
作者: 张德慧
单位: 西安邮电大学
1-21
可以覆盖在父类中定义的私有方法。 (1分)
F
删除线格式
2-1
Java中( ) 。 (1分)
一个子类可以有多个父类,一个父类也可以有多个子类
一个子类可以有多个父类,但一个父类只可以有一个子类
一个子类可以有一个父类,但一个父类可以有多个子类
上述说法都不对
作者: 王从银
单位: 吉首大
2-2
将以下哪种方法插入行3是不合法的。 (2分)
1.public class Test1{
2. public float aMethod(float a,float b){ }
3.
4.}
public float aMethod(float a, float b,float c){ }
public float aMethod(float c,float d){ }
public int aMethod(int a, int b){ }
private float aMethod(int a,int b,int c){ }
作者: 王从银
单位: 吉首大学
2-3
将以下哪种方法插入行6是不合法的。( ) 。 (2分)
1.public class Test1 {
2. public float aMethod(float a,float b) throws
3. IOException { }
4. }
5.public class Test2 extends Test1{
6.
7.}
float aMethod(float a,float b){ }
public int aMethod(int a,int b)throws Exception{ }
public float aMethod(float p,float q){ }
public int aMethod(int a,int b)throws IOException{ }
作者: 王从银
单位: 吉首大学
2-4
若A1、A2为已定义的接口 ,以下接口定义中没有语法错误的是( ) 。(2分)
interface B { void print() { } }
abstract interface B { void print() }
abstract interface B extends A1,A2 { abstract void print(){ };}
interface B { void print();}
作者: 王从银
单位: 吉首大学
2-5
A派生出子类B,B派生出子类C,对于如下Java源代码正确的说法是()。(2分)
- A a0 =new A();
- A a1 =new B();
- A a2 =new C();
只有第1行能通过编译
第1、2行能通过编译,但第3行编译出错
第1、2、3行能通过编译,但第2、3行运行时出错
第1行、第2行和第3行的声明都是正确的
作者: 王从银
单位: 吉首大学
2-6
以下关于继承的叙述正确的是( )。 (2分)
在Java中类只允许单一继承
在Java中一个类只能实现一个接口
在Java中一个类不能同时继承一个类和实现一个接口
在Java中接口只允许单一继承
作者: 王从银
单位: 吉首大学
2-7
在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。 (2分)
private
protected
private protected
public
作者: 王从银
单位: 吉首大学
2-8
下面说法不正确的是( ) (2分)
一个子类的对象可以接收父类对象能接收的消息;
当子类对象和父类对象能接收同样的消息时,它们针对消息产生的行为可能不同;
父类比它的子类的方法更多;
子类在构造函数中可以使用super( )来调用父类的构造函数;
作者: 王从银
单位: 吉首大学
2-9
下面是People和Child类的定义和构造方法,每个构造方法都输出编号。在执行new Child(“mike”)的时候都有哪些构造方法被顺序调用?请选择输出结果 ( ) (2分)
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);
}
}
312
32
432
132
作者: 王从银
单位: 吉首大学
2-10
下面哪个对类的声明是错误的? (2分)
class MyClass extends MySuperClass1, MySupperClass2 {}
public class MyClass{}
abstract class MyClass implements YourInterface1, Youriterface2 {}
private class MyClass {}
class MyClass extends MySuperClass implements YourInterface {}
作者: 王从银
单位: 吉首大学
2-11
类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;}
编译时正确,但运行时错误
将构造一个Student对象
表达式是错误的
表达式是合法的
作者: 王从银
单位: 吉首大学
2-12
在Java中,能实现多重继承效果的方式是( )。 (2分)
接口
继承
内部类
适配器
作者: 强彦
单位: 太原理工大学
2-13
下列选项中,用于定义接口的关键字是( )。 (2分)
interface
implements
abstract
class
作者: 强彦
单位: 太原理工大学
2-14
下列选项中,用于实现接口的关键字是 ( )。 (2分)
interface
implements
abstract
class
作者: 强彦
单位: 太原理工大学
2-15
设有如下代码段: (2分)
class A {
int i, j;
public void fun() {
i++;
j++;
}
}
class B extends A {
static int j;
public void func() {
int j = 2;
for (i = 0; i < 10; i++) {
j += 3;
fun();
}
System.out.println(super.i + this.j);
System.out.println(i + "" + j);
}
}
class Main {
public static void main(String[] args) throws Exception {
B b = new B();
b.func();
}
}
运行Main类,输出结果为
0 032
0 1032
10 27
10 1017
42 1032
作者: 孔德桢
单位: 浙江大学城市学院
2-16
给出如下代码段: (2分)
未命名.png
输出结果为
30 0
0 0
0 10
30 10
作者: 孔德桢
单位: 浙江大学城市学院
2-17
下列关于抽象类的说法哪一个是错误的。 (2分)
含抽象方法的类为抽象类
抽象类能创建(new)实例
子类有未实现父类的抽象方法时仍为抽象类
子类实现所有抽象方法时不再是抽象类
作者: 崔振宇
单位: 山东科技大学
2-18
关于抽象类,下面叙述错误的是() 。 (1分)
包含抽象方法的类必须是抽象类
抽象方法只需要声明,不需要实现
抽象类可以实例化
抽象类中可以没有抽象方法
作者: 孙晨霞
单位: 河北农业大学
2-19
关于接口的声明,错误的是( ) 。 (1分)
接口中所有的成员属性都是public static final修订的常量
接口中的成员属性在声明时可以省略修订关键字
接口中所有的方法都是public abstract final修订的
接口中所有的方法都是public abstract修订的
作者: 孙晨霞
单位: 河北农业大学
2-20
关于接口,下面的叙述错误的是()。 (1分)
一个接口可以多继承多个接口
一个类可以实现多个接口
抽象类在实现接口时,可以不实现该接口中声明的所有方法//非抽象类在实现接口时,必须实现该接口中声明的所有方法。
抽象类在实现接口时,必须实现该接口中声明的所有方法
作者: 孙晨霞
单位: 河北农业大学
2-21
下面的概念,哪个不是关于对象的多态性的体现。 (1分)
方法的重载
方法的继承
方法的覆盖
对象的上、下转型
删除线格式
下列有关匿名对象的说法,正确的有 (2分)
匿名对象只能继承一个类或实现一个接口
匿名对象可以有构造函数
匿名对象不能被重复构造
每个匿名对象都具有独一无二的类型
作者: 孔德桢
单位: 浙江大学城市学院
3-2
对于如下的代码片段,执行b.func()之后,值为27的表达式有 (2分)
class A {
int i, j;
public void fun() {
i++;
j++;
}
}
class B extends A {
static int j;
public void func() {
int j = 2;
for (i = 0; i < 10; i++) {
j += 3;
fun();
}
if (j < 30) {
super.j = j;
} else {
B.j = j;
}
}
}
class Main {
public static void main(String[] args) throws Exception {
B b = new B();
A a = b;
b.func();
}
}
b.i + b.j
((A)b).i + ((A)b).j;
a.i + a.j
b.i + a.j
~~删除线格式~~
4-1
给出以下代码:
class Address {
private String streetAddress, city, state;
private long zipCode;
public Address (String street, String town, String st, long zip) {
streetAddress = street;
city = town;
state = st;
zipCode = zip;
}
public String toString() {
String result;
result = streetAddress + "\n";
result += city + ", " + state + " " + zipCode;
return result;
}
}
class Student {
private String firstName, lastName;
private Address homeAddress, schoolAddress;
public Student (String first, String last, Address home, Address school) {
firstName = first;
lastName = last;
homeAddress = home;
schoolAddress = school;
}
public String toString() {
String result;
result = firstName + " " + lastName + "\n";
result += "Home Address:\n" + homeAddress + "\n";
result += "School Address:\n" + schoolAddress;
return result;
}
}
public class StudentTest {
public static void main (String[] args) {
Address school = new Address ("38 Zheda Rd.", "Hangzhou","ZJ", 310027);
Address jHome = new Address ("20 Yugu Rd.", "Hangzhou","ZJ", 310013);
Student john = new Student ("John", "Smith", jHome, school);
Address mHome = new Address ("123 Zhongshan Rd.", "Fuzhou", "FJ",350000);
Student marsha = new Student ("Marsha", "Jones", mHome, school);
System.out.println (john);
// System.out.println ();
System.out.println (marsha);
}
}
程序运行结果为(一行一空):
John Smith
(28分)
Home Address:
20 Yugu Rd.
Hangzhou, ZJ 310013
School Address:
38 Zheda Rd.
Hangzhou, ZJ 310027
Marsha Jones
Home Address:
123 Zhongshan Rd.
Fuzhou, FJ 350000
School Address:
38 Zheda Rd.
Hangzhou, ZJ 310027
作者: 翁恺
单位: 浙江大学
4-2
请写出以下程序运行结果:
class Foo {
protected class Bar {
protected Bar() { System.out.println("Foo.Bar"); }
}
private Bar b;
Foo() {
System.out.println("Foo");
b = this.new Bar();
}
}
class FooToo extends Foo {
protected class Bar {
protected Bar() { System.out.println("FootToo.Bar"); }
}
public static void main(String[] args) {
new FooToo();
}
}
Foo
(4分)
Foo.Bar
作者: 翁恺
单位: 浙江大学
4-3
请写出以下程序运行结果:
package test;
public class Test {
public static void main(String[] args) {
Test t = new Test();
t.show(new Car(){
public void run(){
System.out.println("test run");
}
});
}
public void show(Car c){
c.run();
c.show();
}}
abstract class Car{
public void run(){
System.out.println("car run");
}
public void show(){
System.out.println(getClass().getName());
}}
test run
(4分)
Example1$1
作者: 翁恺
单位: 浙江大学
4-4
请写出以下程序运行结果:
class Width {
public static final int SINGLE = 1;
}
class Shape {
public void draw(int Width) {
System.out.println("Shape.draw()"+width);
}
}
class Circle extends Shape {
public void draw(Width n) {
System.out.println("Circle.draw()");
}
}
public class Test {
public static void test(Shape s) {
s.draw(Width.Single);
}
public static void main(String[] args) {
Shape c = new Circle();
test(c);
}
}
(2分)
作者: 翁恺
单位: 浙江大学
4-5
一个类如果实现一个接口,那么它就需要实现接口中定义的全部( ),否则该类就必须定义成( )。
方法
(2分)
抽象类