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

    一、特点

    1、由于继承,方法可以重写,所以父类的功能就会被子类覆盖
    2、有时候我们不想子类覆盖父类的功能,这时候我们可以使用final关键字
    3、final可以修饰:类、变量,方法。
    4、final修饰类,该类不能被继承
    5、final修饰变量,该变量不能被修改,因为这个变量是常量了
    6、final修饰方法,该方法不能被重写

    二、案例分析

     1 package finals;
     2 /**
     3  * final关键字,案例1
     4  * @author zhongfg
     5  * @date 2015-06-16
     6  */
     7 class Fu {
     8     
     9     public final int num = 10;
    10     public final void secretMethod() {
    11         System.out.println("这里是绝密文件,不能修改");
    12     }
    13     
    14     public void show(){
    15         
    16     }
    17 }
    18 
    19 class Zi extends Fu {
    20     
    21 //    报错,final修饰的方法不能重写
    22     /*public void secretMethod() {
    23         System.out.println("我就是要修改,怎么的");
    24     }*/
    25     
    26     public void show() {
    27 //        num = 100; 报错,final修饰的变量不能被修改
    28         System.out.println(num);
    29     }
    30 }
    31 
    32 public class FinalDemo {
    33     
    34     public static void main(String[] args) {
    35         
    36         Fu fu = new Zi();
    37         fu.secretMethod();
    38         fu.show();
    39     }
    40 }
    41 
    42 运行结果:
    43 这里是绝密文件,不能修改
    44 10
    View Code
     1 package finals;
     2 /**
     3  * 面试题:final修饰局部变量问题
     4  * 基本类型:
     5  *         基本类型的值不能改变
     6  * 引用类型:
     7  *         引用类型的地址值不能改变,但是该对象的堆内存地址值可以改变
     8  * @author zhongf
     9  * @date 2015-06-16
    10  */
    11 class Student {
    12     
    13     int num = 10;
    14 }
    15 
    16 public class FinalInterview {
    17 
    18     public static void main(String[] args) {
    19         
    20         //局部变量是基本数据类型
    21         int x = 1;
    22         x = 2;
    23         System.out.println(x);
    24         
    25         final int y = 3;
    26 //        y = 4; 报错,无法为最终变量赋值
    27         System.out.println(y);
    28         
    29         System.out.println("---------------");
    30         
    31         //局部变量是引用数据类型
    32         Student s = new Student();
    33         s.num = 20;
    34         System.out.println(s.num);
    35         
    36         final Student ss = new Student();
    37         ss.num = 30;
    38         System.out.println(ss.num);
    39         
    40 //        ss = new Student(); 报错,无法为最终变量赋值
    41     }
    42 }
    43 
    44 运行结果:
    45 2
    46 3
    47 ---------------
    48 20
    49 30
    View Code
  • 相关阅读:
    Lilo的实现
    通过Bochs分析Lilo启动Linux内核的过程
    Linux内核代码布局
    Linux启动过程的内核代码分析
    Linux启动过程的C语言代码分析
    Linux操作系统中对于NTFS读取目录功能的实现
    Linux初始化的汇编代码
    Linux文件映射的反思
    Xen的概况
    安装debian总结以及编译linux内核
  • 原文地址:https://www.cnblogs.com/zfg-technology/p/4581342.html
Copyright © 2011-2022 走看看