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 定义的是全局常量的每一个字母都要求大写

  • 相关阅读:
    深入AXI4总线- [一]握手机制
    《数字集成电路静态时序分析基础》笔记⑩
    搭建自己的gitlab
    idea连接github问题
    itguang
    [转]springboot+idea热部署(自动刷新)
    25匹马,5条赛道,一匹马一个赛道,求决胜1,2,3名至少多少场
    [转]PostgreSQL主从流复制部署
    [转]centos7 安装jdk11 并设置默认java版本
    [转]centos7 修改yum源为阿里源
  • 原文地址:https://www.cnblogs.com/anyux/p/11904202.html
Copyright © 2011-2022 走看看