• 面向对象-final关键字


                   面向对象-final关键字

                                 作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

     

    一.final关键字概述

      继承的弊端就是打破了封装性,如果而已继承并进行不正确的覆盖,会导致原功能的错误。

      final作为一个修饰符:
        final可以修饰类,方法,变量;
        final修饰的类不可用被继承;
        final修饰的方法不可以被覆盖;
        final修饰的变量时一个常量,只能被赋值一次。

      什么时候将变量修饰为final呢?
        针对程序中的一些不会发生变化的数据,也就是常量,例如3.1415926。直接使用这个值不利于阅读,所以一般情况下,都会给概述起一个容易阅读的名称,如"final double PI = 3.1415926;"

    二.final关键字实战案例

    package cn.org.yinzhengjie.extemdPackage;
    
    /**
     *     定义父类
     * @author 尹正杰
     *
     */
    public class Father {
        final double PI = 3.1415926;
        
        final void sayHello() {
            System.out.println("Father sayHello...");
        }
    }
    Father.java
    package cn.org.yinzhengjie.extemdPackage;
    
    /**
     *     定义子类
     * @author 尹正杰
     *
     */
    public class Son extends Father {
        
        /*
         * 由于Son的父类对sayHello方法用final关键字修饰,因此子类无法进行覆盖(override)操作
         */
    //    void sayHello() {
    //        System.out.println("Son sayHello...");
    //    }
        
        void showMe() {
            System.out.println("Son showMe...");
        }
    }
    Son.java
    package cn.org.yinzhengjie.extemdPackage;
    
    /**
     *     测试继承类
     * @author 尹正杰
     */
    public class ExtendDemo {
        
        public static void main(String[] args) {
            Son son = new Son();
            son.sayHello();
            son.showMe();
            System.out.println(son.PI);
        }
        
    }
    ExtendDemo.java

  • 相关阅读:
    Java 9 揭秘(9. 打破模块封装)
    Java 9 揭秘(8. JDK 9重大改变)
    好书分享 ——《深度工作》
    Java 9 揭秘(7. 创建自定义运行时映像)
    Java 9 揭秘(6. 封装模块)
    如何更好地管理你的精力,时间和专注力实现最佳表现
    这是您一直期待的所有iOS 11功能的屏幕截图
    我为什么不敢也不想写自己的经验和想法?
    无聊? 现在你知道为什么了!
    Java 9 揭秘(5. 实现服务)
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12234829.html
Copyright © 2020-2023  润新知