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

    一、final关键字的功能概述

     final关键字可以用来修饰引用、方法和类。

     1、用来修饰一个引用

    1. 如果引用为基本数据类型,则该引用为常量,该值无法修改;

    2.  如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。

    3.  如果引用时类的成员变量,则必须当场赋值,否则编译会报错。

    例子:

     1 final class Person {
     2     String name ="zs";
     3     //3. 此处不赋值会报错
     4     //final int age;
     5     final int AGE = 10;  
     6 }
     7 public class Demo01 {
     8     public static void main(String[] args) {
     9         //1. 基本数组类型为常量,无法修改
    10         final int i = 9;
    11         //i = 10;
    12        
    13         //2. 地址不能修改,但是对象本身的属性可以修改
    14         Person p = new Person();
    15         p.name = "lisi";
    16         final int[] arr = {1,2,3,45};
    17         arr[3] = 999;
    18         //arr = new int[]{1,4,56,78};
    19     }
    20 }

    2.用来修饰一个方法

     当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。

     1 class Person {
     2     public final void say() {
     3         System.out.println("说....");
     4     }
     5     public void eat() {
     6         System.out.println("吃...");
     7     }
     8 }
     9 class Teacher extends Person {
    10     //1. final修饰的方法不能被重写,但此方法仍然被继承
    11     /*@Override
    12     public void say() {
    13         System.out.println("老师在一本正经的说...");
    14     }*/
    15     
    16     public void eat() {
    17         System.out.println("老师在大口大口的吃...");
    18     }
    19 }
    20 public class Demo02 {
    21     public static void main(String[] args) {
    22         Teacher t = new Teacher();
    23         t.say();
    24     }    
    25 }

    3.用来修饰类

     当用final修改类时,该类成为最终类,无法被继承。简称为“断子绝孙类”。

     比如常用的String类就是最终类。

     在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类

  • 相关阅读:
    根据数组对象中的某个属性值排序
    vue小知识
    vue项目中config文件中的 index.js 配置
    小问题
    原生无缝轮播
    webpack打包提交代码
    echarts
    面试问题
    MySql
    vue-router 跳转原理
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12542185.html
Copyright © 2011-2022 走看看