java中final关键字的作用

final关键字可以用于三个地方。用于修饰类、类属性和类方法。

被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被覆盖(重写);

对于被final关键字修饰的类属性而言,子类就不能给他重新赋值了,如果重新赋值,会报错:

下图所示,当我们直接给name赋值时,因为父类中的name属性被final修饰,所以eclipse会报错。但是这里有一个特别容易混淆的地方:

请注意,我们在name之前加上了一个String关键字,其结果是从新发定义了一个变量,虽然变量名都是name,但是在内存中占用的区域却不同,所以不与之冲突,不会报错。

接下来是在类方法前加上final关键字的用法。与类属性类似,父类方法如果用final关键字进行修饰,那么不能被覆盖,但要说明一点的是,不能被重写是指不能同时和和父类方法同名,同参数,换句话讲,只要子类中的方法与父类中的方法同名,同参数列表,即使返回值不同,仍然是属于重写的范畴:

这里的子类方法报错,是因为他与父类中的print方法同名同参数,即使他们返回值不同,但仍然是属于重写的范畴。所以这里有一个小结论:

重写:只要子类方法与父类方法同名同参数就是重写。

(0)

相关推荐

  • 22 抽象

    22 抽象 关键字 abstract 出现的原因(猜测) 为了使非抽象子类重新书写父类或者祖先类的非私有化方法的方法体内容(返回值类型需要一致),-------即重写(实现),为多态(父类声明,子类实 ...

  • 21 继承

    21 继承 关键字 extends 出现的原因(猜测) 多个类出现相同的属性和方法,如果每定义一个类都要重写一次的话,那么就会很麻烦,所以继承就出现了 特点 子类单继承,即一个子类只能有一个父类(联想 ...

  • 23 final关键字(完结器)

    23 final关键字(完结器) 本质 不可以被修改--------定义的都是最终版本 //记住final和abstract是死对头,不能同时出现在一个类或一个方法上 常规用法 1.修饰类(无法被继承 ...

  • 关于java中final关键字与线程安全性

    翻译自http://www.javamex.com/tutorials/synchronization_final.shtml 在Java5中,final关键字是非常重要而事实上却经常被忽视其作为同步 ...

  • Java中的关键字——final

    final是Java中的一个关键字,主要表示"最终态,最终的,不可修改"的意思:它可以修饰Java中的类,方法,属性等. 一. final类: 当final修饰Java中的类的时候 ...

  • Java 中的关键字

    Java 中有多少个关键字,有大小写之分吗? Java 中有 48 个关键字在使用 + 两个保留关键字未使用,共 50 个关键字. Java 关键字全部都由是小写组成. Java 中保留关键字分别是哪 ...

  • java中static关键字

    static关键字: 特点: 1.static是一个修饰符,用于修饰成员.(成员变量,成员函数)static修饰的成员变量称之为静态变量或类变量. 2.static修饰的成员被所有的对象共享. 3.s ...

  • Java中this关键字的使用

    一,表示类中属性 1,没有使用this的情况   class Person{ // 定义Person类 private String name ; // 姓名 private int age ; // ...

  • C++ 中 explicit关键字的作用

    explicit作用: 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换. explicit使用注意事项: exp ...

  • 从零开始学Java(十三)Java中this关键字的使用

    ✔上一篇Java零基础系列文章我们说到了Java封装,今天这篇文章的主要目标是带大家

  • 关于Java中static关键字的用法以及从内存角度解析

    在Java中,static可以用来修饰成员变量和成员方法. 修饰成员变量,称为静态成员方法 修饰静态方法,称为静态成员方法 搞清楚用法和区别之前,先搞清static声明的变量和普通非静态变量在内存的分 ...

  • java中的关键字

    static 静态的 定义在类里面的带有static的变量叫做类变量 ​他不属于类里面的任何一个对象,他属于这个类,可以用: 类名字.该变量 任何一个对象名.该变量 ​来调用改变它,这个变量只有一份, ...