zoukankan      html  css  js  c++  java
  • final关键字的用法

    ---恢复内容开始---

    Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。

     1、修饰类

      当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。

        final类中的成员变量可以根据需要设为final但是要注意final类中的所有成员方法都会被隐式地指定为final方法。

       例如,创建一个类的前提下:

    1 final class person{
    2   public people(){
    3 
    4 }  
    5 }
    6 
    7 class man extends people{
    8 
    9 }

      结果会报错,类型man不能成为people的子类;

      2、修饰方法

       在使用final时,注意,只有在想明确禁止该方法在子类中被覆盖的情况下才将方法设置为final。final修饰的方法表示此方法

       已经是最后的、最终的含义,亦即此方法不能被重写(可以重载多个final修饰的方法)。此处需要注意的一点是:因为重

       写的前提是子类可以从父类中继承此方法,如果父类中final修饰的方法同时访问控制权限为private,将会导致子类中不能

       直接继承到此方法,因此,此时可以在子类中定义相同的方法名和参数,此时不再产生重写与final的矛盾,而是在子类中重

       新定义了新的方法(注:类的private方法会隐式地被指定为final方法。)

       

    public class b extends a{
       public static void main(String args[]){
            
    
    }
    
        public void getName(){
    
        }
    
    }       
    
    class a {
    
          private final void getName(){
    
    }  
    /*
    因为private修饰,子类不能继承此方法,因此,子类中的getName是重新编译的,属于正常;
    */
         
         public final void getName(){
    
    }
    
         /*
            因为public修饰,子类可以继承,与final矛盾,导致重写了final方法,编译错误。
        
    */  
    }        

      3、修饰变量

       final修饰变量只能被赋值一次,赋值后不再改变。

        final修饰成员变量,必须初始化方法。

        当函数的参数类型是final时,说明该参数是只读型,不能被更改;

        

     1 class man{
     2 
     3 priavate final int i = 0;
     4 
     5     public man(){
     6         i = 1;
     7        //i等于1报错;
     8         final Object obj =new Object();
     9         obj = new Object();
    10       //obj报错;
    11 
    12 }
    13 
    14 }        

    ---恢复内容结束---

  • 相关阅读:
    python面试题总结与分析(一)
    Word2vec ------算法岗面试题
    深度学习(二)-----算法岗面试题
    深度学习(一)-------算法岗面试题
    模型融合和提升的算法------算法面试题
    前后端交互3 发送消息1
    前后端交互2 vuex存储token
    前后端交互1
    4.弹出层组件的实现与封装
    3. 聊天列表页面的实现
  • 原文地址:https://www.cnblogs.com/caizhou520/p/10550997.html
Copyright © 2011-2022 走看看