面向对象-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

 

posted @ 2020-01-26 21:05  JasonYin2020  阅读(160)  评论(0编辑  收藏  举报