java基础语法练习第四章

类的继承

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){
this.name =name;
}
}
public class Demo1
{
public static void main(String[] args){
Dog dog1 = new Dog(“xiaohuang”);
Dog dog2 = new Dog(“xiaohuang”);
String s1 = dog1.toString();
String s2 = dog2.toString();
String s3 = “xiaohuang”;
String s4 = “xiaohuang”;
}
}
返回值为true的是( C )
A、dog1.equals(dog2)
B、s1.equals(s2)
C、s3.equals(s4)
D、dog1==dog2

14、Java中所有的类都是通过直接或间接地继承( A )类得到的。
A、java.lang.Object
B、java.lang.Class
C、任意类
D、以上答案都不对

15、下列程序运行结果是(D )
public class Demo {
public static void main(String[] args) {
Object obj=new Father(){
public void show(){
System.out.println(“helloworld”);
}
};
obj.show();
}
}
class Father{
public void show(){
System.out.println(“hello father”);
}
}
A、hellofather
B、helloworld
C、无结果
D、程序编译报错

阅读下列的程序
public class Example {
public static void main(String[] args) {
new Father () {
public void show() {
System.out.println(“helloworld”);
}
}.show();
}
}
class Father {
public void show() {
System.out.println(“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) {
e.printStackTrace();
}
}
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

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小魔女千千鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值