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

    1.final应用场景:
    1.1 一个永不改变的编译时常量。
    1.2 一个运行时被改变的值,并且不希望其值被改变。
    2.final修饰变量、方法和类
    2.1 final修饰变量:修饰基本类型变量时,变量的值无法改变。修饰引用变量时,变量的指向地址无法改变,但变量指向的对象是可以改变的。
    2.2 final修饰方法:只有在想明确禁止覆盖时,才将方法设置为final的。private默认为final的,显式添加没有任何意义。
    2.3 final修饰类:此时不容许类被继承,标志该类方法不可以被覆盖。
    package extends1.one;
    class Sub extends Sup{
        public void funSup(){
            System.out.println("sub funSup...");
        }
        public void finalPrivate(){
            System.out.println("sub finalPrivate...");
        }
        public void fun(){
            System.out.println("sub fun...");
        }
    }
    
    public class Sup{
        public void funSup(){
            System.out.println("sup funSup...");
        }
        //该方法不能在Sup子类中覆盖,否则编译报错
        public final void finalSup(){
            System.out.println("sup finalSup...");
        }
        //子类中可以有与该方法相同的方法,但是两个方法是没有任何关系的,
        //private方法对外部而言可以看做不存在包括其子类
        private void finalPrivate(){
            System.out.println("sup finalPrivate...");
        }
        public static void main(String[] args) {
            Sup s=new Sub();
            s.funSup();
            //private方法是无法与外部方法之前有任何联系的,
            //即使子类中含有finalPrivate()方法,但和父类方
            //法没有任何关系,对父类而言该方法没有被覆盖。
            s.finalPrivate();
            //The method fun() is undefined for the type Sup
            //s.fun();
            ((Sub)s).fun();
            ((Sub)s).finalPrivate();
            /* Output:
             * sub funSup...
             * sup finalPrivate...
             * sub fun...
             * sub finalPrivate...
             */
        }
    }
    3.用final来修饰引用类型的意义不大,因为在使用时控制的只是引用指向地址不变,并不能控制引用指向对象保持不变。

  • 相关阅读:
    LeetCode(287)Find the Duplicate Number
    LeetCode(290) Word Pattern
    LeetCode(205)Isomorphic Strings
    LeetCode(201) Bitwise AND of Numbers Range
    LeetCode(200) Number of Islands
    LeetCode(220) Contains Duplicate III
    LeetCode(219) Contains Duplicate II
    命令行执行Qt程序
    LeetCode(228) Summary Ranges
    redis 的安装和使用记录
  • 原文地址:https://www.cnblogs.com/wjc920/p/9256170.html
Copyright © 2011-2022 走看看