1.下面描述函数重写错误的是( C )
A. 要有子类继承或实现
B. 子类方法的权限必须大于等于父类的权限
C. 父类中被private权限修饰的方法可以被子类重写
D. 子类重写接口中的抽象方法,子类的方法权限必须是public的
自己选错:B,子类可以访问父类,也可以访问自己,所以权限大于父类;
C,父类的私有子类不能访问,只能通过访问父类的共有间接访问父类的私有;
2.分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在主函数应填入( AD)。
class A {
public void test() {
System.out.println("A类的test()方法");
}
}
class B extends A {
public void test() {
System.out.println("B类的test()方法");
}
public static void main(String args[]) {
}
}
A. A a = new B(); a.test(); //可以通过父类的引用指向子类对象,来访问
B. A a = new A(); a.test();
C. B b = new A(); b.test();
D. new B().test(); //可以通过子类直接访问
3. 给定java代码,如下: abstract class Shape {
abstract void draw( );
}
要创建Shape类的子类Circle,以下代码正确的是( BD )。
A. class Circle extends Shape{ int draw( ){} }
B. abstract class Circle extends Shape{ } //子类继承父类,但没有抽象类;
C. class Circle extends Shape{ void draw( ); }
D. class Circle extends Shape{ void draw( ){ } } //子类继承父类,并且拥有抽象类在子类实现;
4. 在Java中,下面对于构造函数的描述正确的是( D )。
A. 类必须显式定义构造函数 //多选了A,如果没有系统会自己帮你加一个无参构造函数;
B. 构造函数的返回类型是void
C. 构造函数和类有相同的名称,并且不能带任何参数
D. 一个类可以定义多个构造函数
5. 在Java中,下面关于抽象类的描述正确的是( BD )。
A. 抽象类本身可以被实例化
B. 如果一个类中有一个方法被声明为抽象的,那么这个类必须是抽象类 //少选了B,正确我也不知道当时为什么没选
C. 抽象类中的方法必须都是抽象的
D. 声明抽象类必须带有关键字abstract
6. 下面对this的作用描述错误的是 ( D )
A. 当成员变量和局部变量重名的时候可以用this区分
B. this()语句必须放在构造函数的第一行,根据this后面括号中的参数调用本类其他的构造函数.
C. this可以用本类的一般函数 //当时选了C,这个可以;
D. this可以调用父类的一般函数 //this指代的是当前对象,或者当前对象的引用,但是this现在在子类,不能到父类中
7. 在java中,已定义了两个接口B和C,以下语句正确的是 ( AC )
A. interface A extends B,C //接口和接口本来就是继承关系,所以接口A可以继承接口B,接口C;
B. interface A implements B,C
C. class A implements B,C
D. class A implements B,implements C //一个类可以拥有多个接口
8.在Java接口中定义常量,下面语法正确的是( ABC )。
A. static final int MALE = 1;
B. final int MALE = 1;
C. int MALE = 1; //自动隐藏了 public static final;
D. private int MALE = 1;
9. 下列选项中关于Java中super关键字的说法错误的是(B)。
A. 当子父类中成员变量重名的时候,在子类方法中想输出父类成员变量的值,可以用super区分子父类成员变量
B. super语句可以放在构造函数的任意一行 //实例化子类对象调用子类构造函数进行初始化前,必须调用父类的构造函数
//对父类进行初始化,防止子类无法初始化
C. 子类可以通过super关键字调用父类的方法
D. 子类可以通过super关键字调用父类的属性 //可以super . 属性;
10. 以下关于Object类说法错误的是( B )。
A. 一切类都直接或间接继承自Object类 //Object为超类,所有的类都继承于Object类;
B. 接口也继承Object类 //Object和interface没什么关系;
解答:如果一个接口也继承了Object 类,那么接口会继承Object类中的很多方法,显然会错,因为那些方法都是实方法,不是
抽象方法。比如toString() 方法,被继承过来,不满足接口中方法都是抽象方法。
C. Object类中定义了toString()方法
D. Object类在java.lang包中
11. 多态的前提是方法重写,访问子类重写的方法;接口访问子类的特有功能;
12. 下面说法中错误的是 ( D )
A. 静态代码块只在类加载的时候执行一次 , 以后再创建对象的时候不执行 //对的
B. 局部代码块的作用是为了限制变量的生命周期 //对的
C. 构造代码块在每创建一次对象就执行一次 //对的
D. 以上都不对
13. 关于类和对象的叙述正确的是:( A )
A.Java的类分为两大部分:系统定义的类和用户自定义的类
B.类的静态成员变量(类变量)和普通成员变量(实例变量)的概念完全一样,只是表达形式不同 //错的
C.定义一个类时,该类的成员至少要有一个成员变量和一个成员方法 //没有也可以
D.类是对象的实例化 //类是对象的抽象,对象是类的实例化;