猪莫慌

java中final关键字

一:final关键字的基本用法

  java中,final关键字用来修饰类、方法、变量(成员变量和基本变量)。

二:修饰类

  1:final修饰的类不能被继承。

  2:final修饰的类中的成员变量可以用final修饰,也可以不用final修饰。

  3:final修饰类的所有成员方法被隐式指定为final方法。

  

public final class Person {  

    public Person() {    
        
    }
    
}

class Animal extends Person{  //编译报错
    
}

 三:修饰方法

  1:final修饰的方法不能被重写。

  2:可以重载多个final修饰的方法。

  3:重写的前提是子类继承父类的方法,被private修饰的方法不能被继承,此时在子类定义的同名、同参数的方法与父类final修饰的方法不是重写关系,而是重新定义一个新方法。

public class A {
    /*因为pblic修饰,子类可以继承到此方法,导致重写了父类的final方法,编译出错
    public final void getName() {
        
        }
    */
    /*
    因为被private修饰,子类无法继承此方法,因此子类中getName方法属于重新定义
    属于子类本身的方法,编译正常
    */
    private final void getName() {
        
        }
}

class B extends A{
    public void getName() { 
        
    }    
}

 四:修饰变量

  1:final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

  2:final修饰基本数据类型,一旦初始化后便不能再改变;final修饰的引用类型,初始化后不能再指向其他对象,但该对象的内容可以发生改变。

  3:final修饰一个成员变量,必须要显示初始化。初始化方式有两种:一种在声明变量的时候初始化;另一种声明变量后,在构造方法中赋初始值。

  4:当函数的参数声明为final类型时,说明该参数是只读类型,不能对该参数值进行修改。

public class Man {
    private final int i = 0 ;
    public Man() {
        //i=1;                 编译报错
        final Object o = new Object();
        //o = new Object();     编译报错
        
    }
}

 

posted on 2019-08-11 21:13  猪莫慌  阅读(299)  评论(0编辑  收藏  举报

导航