关于抽象类和接口的易错概念选择题(JAVA基础)

1.以下方法错误的是(A D)
A 覆盖方法包括成员方法的覆盖和成员变量的覆盖
B 成员方法的覆盖是多态的一种表现形式
C 子类可以调用父类中被覆盖的方法
D 任何方法都可以被覆盖
分析:在子类中调用父类方法使用super关键字。super.a() 就可以调用父类的a方法。 
在类继承或者接口实现过程中就会涉及到成员属性以及成员函数的重写,需要注意的是,成员函数的重写是直接覆盖父类的(继承中),但是成员变量重写是不会进行覆盖的
如果子类本身没有定义使用this关键字可以去访问父类的成员变量。
最后final修饰的方法不能被覆盖 覆盖即重写和重载一起都是多态的表现形式。

2.下面说法正确的是(C H)
A instanceof 关键字用来判定某个类是否为抽象类。
B final关键字修饰的成员变量不需要初始化。
C 接口的方法都是抽象方法(jdk1.8之前),并且没有方法体
D 当我们继承一个抽象类时,我们必须要实现抽象类的抽象方法。
E 在向上转型的过程中,如果父类和子类拥有相同的名字的成员方法(非静态)
访问的是子类的该方法。如果父类和子类拥有名字的成员变量时,访问的是子类的成员变量。
F 内部类访问为外部类方法时,不用创建外部类对象直接访问外部类方法。
G 内部类变量不能设置为static,也不能设置为final
H 多态通常用来作为参数传入或者作为返回值返回。

3.下面说法不正确得是(A C D E)
A 不能和abstract一起使用的修饰符有static final public final
B 抽象类之间是继承关系,接口之间也是。
C 接口不能存在普通方法和常量
D局部内部类public,private修饰符修饰
E接口不可以直接实例化,抽象类可以

4.下面有那些选项是对的(B C E)
A instanceof是一个二元修饰符,作用是用来判断左边的对象是否是右边类的实例,返回的是布尔类型
B private protected 和static都不可以修饰interface接口
C this.属性名访问的是本类中的属性,如果本类中没有,就从父类中继续查找
D对象是对类的抽象化
E 接口中可以有常量
分析 接口可以有常量(jdk1.8以后) instanceof 是一个二元修饰符,作用是用来判断左边的对象是否是右边类的实例 或者是右边超类的实例

5.以下说法正确的是 ( B )
对于方法内得形参()
A 必须定义多个形参
B 可以没有
C 至少有一个
D 只能是简单变量

6.以下说法正确的是( C )
A 对于局部内部类,不能在class前加任何修饰符(public default private protected)来修饰B 只要没有定义不带参数的构造函数,JVM都会为类生成一个默认的构造函数
C 向上转型中,父类与子类拥有相同名字的普通方法时,访问的是子类的成员方法
D单例模式中类的构造方法使用private修饰,声明为私有,这样就不能在类的外部使用new关键字来创建实例对象了

7.final修饰的方法不可重写的(子类不能重写父类final方法,但是可以调用)

8.以下说法正确的是(E G)
A 抽象方法是一种功能契约(功能契约即为接口),不实现抽象方法就无法构造对象
B 接口中的抽象方法只能是public的,而抽象类中的抽象方法可以用别的修饰符修饰
C 类是对象的抽象模型,刻画了对象中所有信息
D 抽象方法不能用final来修饰 ,可以用satic来修饰
E 对计算公式已不需要更改的书数学哈书,常用public static final 来修饰;
F 若类中有final abstract来修饰 的 方法 ,必须实现该方法才能构造对象。
G 引用是对象的名字,引用值是对象的起始地址

9.下列的说法错误的是(B)
A 抽象类必须被子类继承
B 对象向上转型以后,拥有相同名字的普通成员变量(静态变量)时,访问的是子类里面的
C super的主要功能是完成子类的调用父类的内容,并且只能放在子类构造方法的第一行
D 接口的方法必须定义为public权限,并且只能是抽象方法(不考虑jdk1.8)

10.下面那些选项是错误的(A B D E)
A instanceof 是一个二元操作符,只用来判断左边的对象是否是右边的类的实例,返回是布尔型
B 成员内部类可以使用任何修饰符修饰,可以定义常量和静态变量
C this.属性名访问的是本类中的属性,如果本类中没有,就从父类中继续查找
D 在成员方法里面叫做局部内部类,可以访问外部类属性和使用任何修饰符,但使用局部内部类方法时 ,必须实例化内部类对象
E 实现内部类的调用,要直接实例化内部类

11 下列定义,正确的有哪些( A B C)
A接口只能做方法申明,抽象类中就可以做方法实现和方法申明
B 抽象类中的抽象方法只能申明,不能实现.abstract void abc();不能加{}
C 抽象方法要被实现,所以不能是静态的,也不能是私有的
D 接口里只能有公共方法,1.8以后 可以有普通方法和成员变量
E 类实现接口,利用关键字implement 完成 (错误 注意为implements)

12以下说法不正确的有(A B C D)
A拥有抽象方法的类为抽象类
B抽象类的方法时抽象方法
C继承抽象类的子类为抽象类
D实现接口的类为抽象类

13 下列说法正确的是 ( A )
A Java程序中的main方法必须写在类里面
B Java程序中可以有多个main方法
C Java程序中类名必须和文件名一样
DJava程序的main方法中如果只有一条语句,可以不用大括号括起来
E在类中声明一个整数数组作为成员变量,如果没有给他赋值,数值元素值为空
F数组本身是一个对象

14 如果在子类继承父类,子类构造方法中没有注明时默认第一行调用父类的空参构造方法

15 下列说法正确的是(A B C)
A try块不可以省略
B 可以使用多重catch块
C finally块可以省略
D catch块和finally块可以同时省略

16 以下对自定义异常描述正确得是(A C)
A 自定义异常必须继承Exception
B 自定义异常必须继承Error
C 自定义异常可以更加明确地确定异常出错位置和详细详细
D程序中已经提供了丰富的异常类,使用自定义异常没有意义

17在JAVA中关于抽象类的描述正确的说(D)
A 抽象类可以被实例化
B 如果一个类中有一个方法被声明为抽象的这个类必须是抽象类
C 抽象类的方法必须是抽象的
D 声明抽象类必须带有abstract关键字


  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值