java基础语法练习第四章
- 类的继承
- 方法的重写
- super关键字
- final关键字
- 接口
- 多态
- equals与 == 的区别
- 匿名内部类
- 自定义异常
类的继承
1、已知类的继承关系如下:
class A
class B extends A
class C extends A
则以下语句能通过编译的是( A )
A、A a=new B();
B、C c=new B();
C、C c=new A();
D、B b=new C();
方法的重写
2、如果父类的方法是静态的,则子类的方法被(B)修饰才能覆盖父类的静态方法 。
A、protected
B、static
C、private
D、final
3、在下面哪种情况下,可以使用方法重写( C )
A、父类方法中的形参不适用于子类使用时
B、父类中的方法在子类中没有时
C、父类的功能无法满足子类的需求时
D、父类方法中的返回值类型不适合子类使用
super关键字
4、下列关于super关键字的说法中,正确的是( A )
A、super关键字是在子类对象内部指代其父类对象的引用
B、super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C、子类通过super关键字只能调用父类的方法,而不能调用父类的属性
D、子类通过super关键字只能调用父类的属性,而不能调用父类的方法
final关键字
5、关于final修饰成员变量说法正确的是(A)
A、被final修饰的成员变量为常量
B、被final修饰的成员变量不能被继承
C、被final修饰的成员变量可以被多次赋值
D、final只能在接口中修饰成员变量
6、下列选项中,关于final修饰成员变量的说法正确的是( B )
A、被final修饰的成员变量可以被多次赋值
B、被final修饰的成员变量为常量
C、final只能在接口中修饰成员变量
D、以上都不对
7、请定义一个由public修饰符修饰的int型成员变量MAX_LENGTH,并使该值保持为常数100,则定义这个变量的语句是(D)
A、public int MAX_LENGTH=100
B、public constint MAX_LENGTH=100
C、final int MAX_LENGTH=100
D、public final int MAX_LENGTH=100
接口
8、一个具体类实现接口时,需要重写接口中的(C)
A、成员变量
B、局部变量
C、成员方法
D、构造方法
9、下面哪个修饰符不可以修饰接口中的成员变量(D)
A、public
B、static
C、final
D、private
10、下列关于接口的说法中,错误的是( D )
A、接口中定义的方法默认使用“publicabstract”来修饰
B、接口中的变量默认使用“publicstaticfinal”来修饰
C、接口中的所有方法都是抽象方法
D、接口中定义的变量可以被修改
多态
11、对于使用多态的应用程序,某个对象的确切类型何时能知道( B )
A、执行时才可以知道
B、应用程序编译时能够判断
C、程序员编写程序时就已知道
D、永远不会知道
12、下列关于对象的类型转换的描述,说法错误的是( C )
A、对象的类型转换可通过自动转换或强制转换进行
B、无继承关系的两个类的对象之间试图转换会出现编译错误
C、由new语句创建的父类对象可以强制转换为子类的对象
D、子类的对象转换为父类类型后,父类对象不能调用子类的特有方法
equals与 == 的区别
equals与==的区别
13、阅读下段代码
class Dog
{
public String name;
Dog(String name){
=name;
}
}
public class Demo1
{
public static void main(String[] args){
Dog dog1 = new Dog(“xiaohuang”);
Dog dog2 = new Dog(“xiaohuang”);
String s1 = ();
String s2 = ();
String s3 = “xiaohuang”;
String s4 = “xiaohuang”;
}
}
返回值为true的是( C )
A、(dog2)
B、(s2)
C、(s4)
D、dog1==dog2
14、Java中所有的类都是通过直接或间接地继承( A )类得到的。
A、
B、
C、任意类
D、以上答案都不对
15、下列程序运行结果是(D )
public class Demo {
public static void main(String[] args) {
Object obj=new Father(){
public void show(){
(“helloworld”);
}
};
();
}
}
class Father{
public void show(){
(“hello father”);
}
}
A、hellofather
B、helloworld
C、无结果
D、程序编译报错
阅读下列的程序
public class Example {
public static void main(String[] args) {
new Father () {
public void show() {
(“helloworld”);
}
}.show();
}
}
class Father {
public void show() {
(“hellofather”);
}
}
下列选项中,程序的运行结果是( B )
A、hellofather
B、helloworld
C、编译报错
D、编译通过,运行报错
您提交的答案: 【B】
正确答案是:【B】
匿名内部类
17、下列关于匿名内部类的描述,错误的是( D )
A、匿名内部类是内部类的简化形式
B、匿名内部类的前提是必须要继承父类或实现接口
C、匿名内部类的格式是"new父类(参数列表)或父接口(){}"
D、匿名内部类可以有构造方法
自定义异常
18、下列关于自定义异常的说法中,错误的是(D )
A、自定义异常要继承Exception类
B、自定义异常继承Exception类后,具有可抛性
C、自定义异常可以在构造方法中用super关键字传递异常信息给父类
D、自定义异常必须继承Error类
19、自定义运行时异常,必须继承自( C )类。
A、Error
B、Exception
C、RuntimeException
D、Throwable
20、阅读下面代码
class MyException extends (1) {
}
public class Demo {
public static void main(String[] args) {
try {
show();
} catch ( (2) e) {
();
}
}
public static void show() (3) MyException {
throw new MyException();
}
以上程序,创建了一个自定义异常(编译异常),请补全空白处代码( A )
A、(1)Exception(2)MyException(3)throws
B、(1)MyException(2)Exception(3)throws
C、(1)Exception(2)Exception(3)throws
D、(1)Exception(2)MyException(3)Exception