final 不能修饰抽象类和接口

以下关于final关键字说法错误的是(A,C)(两项)

A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
B) final修饰的类肯定不能被继承
C) final修饰的方法不能被重载
D) final修饰的变量不允许被再次赋值

一、final关键字可以用来修饰类、方法、变量。各有不同。

A、修饰类(class)。

 1、该类不能被继承。 
 2、类中的方法不会被覆盖,因此默认都是final的。 
 3、用途:设计类时,如果该类不需要有子类,不必要被扩展,类的实现细节不允许被改变,那么就设计成final类

B、修饰方法(method)

1、该方法可以被继承,但是不能被覆盖。 
2、用途:一个类不允许子类覆盖该方法,则用final来修饰 
3、好处:可以防止继承它的子类修改该方法的意义和实现;更为高效,编译器在遇到调用fianal方法转入内嵌机制,提高了执行效率。 
4、注意:父类中的private成员方法不能被子类覆盖,因此,private方法默认是final型的(可以查看编译后的class文件)

C、修饰变量(variable)

 1、用final修饰后变为常量。包括静态变量、实例变量和局部变量这三种。 
 2、特点:可以先声明,不给初值,这种叫做final空白。但是使用前必须被初始化。一旦被赋值,将不能再被改变。

D、修饰参数(arguments)

 1、用final修饰参数时,可以读取该参数,但是不能对其作出修改

二、final关键字不能用来抽象类和接口。

原文链接: https://blog.csdn.net/qq_31307253/article/details/78235964

posted @ 2020-05-03 07:09  ping4  阅读(4340)  评论(0编辑  收藏  举报