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

    final在程序中描述为终结器的概念,在java中使用final定义类、方法、属性
    1.使用final定义的类不能再拥有子类
    观察final定义的类、

    final class A{
    
    }
    class B extends A{
    
    }
    
    public class testDemo{
    	public static void main(String args[]){
    		
    	}
    }
    

    编译报错

    root@079a25844567:/opt/lixinghua/OOP# javac testDemo.java
    Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
    testDemo.java:4: error: cannot inherit from final A // 不能继承 A类
    class B extends A{
                    ^
    1 error
    

    一般地,开发系统类的会使用到final,如果进行架构代码的开发,也会用到final,只是使用者很少会自已定义的final类
    2.使用final定义的方法,不能被子类覆写
    在一些时候由于某些父类具备某隐藏的特性,那么子类必须使用此方法操作的时候,就加上final。意思是子类不要去破坏这个方法的重要的作用

    class A{
    	public final void get(){
    	}
    
    }
    class B extends A{
    	public void get(){
    	}
    }
    
    public class testDemo{
    	public static void main(String args[]){
    		
    	}
    }
    

    编译报错

    root@079a25844567:/opt/lixinghua/OOP# javac testDemo.java
    Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
    testDemo.java:7: error: get() in B cannot override get() in A
    	public void get(){
    	            ^
      overridden method is final
    1 error
    
    

    以上两个final对我们使用意义不大
    3.使用final定义的变量就成为了常量,常量必须在定义时设置好内容,并且不能修改

    class A{
    	final double GOOD=100.1;
    	public final void get(){
    		GOOD=1.1;
    	}
    
    }
    class B extends A{
    }
    
    public class testDemo{
    	public static void main(String args[]){
    		
    	}
    }
    

    编译报错

    root@079a25844567:/opt/lixinghua/OOP# javac testDemo.java
    Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
    testDemo.java:4: error: cannot assign a value to final variable GOOD
    		GOOD=1.1;
    		^
    1 error
    

    使用常量可以利用一些变量名称表示一些数值
    为了让常量和变量有效地区分,所有的常量名称都要求使用大写字母的方式表示
    特别需要介绍的是全局常量:public static final 声明的就是全局常量

    public static final String STR="MLDN";
    

    static 的数据保存在公共数据区,所以此处的常量就是一个公共的常量
    总结
    1.对于final定义的类或方法,一定不要继承或覆写
    2.发现public static final 定义的是全局常量的每一个字母都要求大写

  • 相关阅读:
    maven如果正常配置不成功,就按照我的就可以配置成功了
    springmvc中model可以封装的数据类型
    sql中limit使用方法
    bootStrap的使用
    idea中 maven打包时时报错User setting file does not exist C:Userslenevo.m2setting.xml,
    解决方法:CentOS7用yum安装软件显示错误:cannot find a valid baseurl for repo: base/7/x86_64
    centOS 7下无法启动网络(service network start)错误解决办法
    Invalid bound statement (not found)
    AJAX+springmvc遇到的问题
    llegalStateException: getWriter() has already been called for this response
  • 原文地址:https://www.cnblogs.com/anyux/p/11904202.html
Copyright © 2011-2022 走看看