zoukankan      html  css  js  c++  java
  • java中的final总结

    Java关键字final有最终的,不可改变的含义,它可以修饰非抽象类、非抽象类成员方法和变量。

    报错:类"TestFinal"要么是abstract,要么是final的,不能两个都是.

    1.final修饰的类就是终极的.不能被其他类继承,就不可能有子类.

    2.由于final类没有子类,其中的方法不可能被覆盖,因此,final类中的

    所有方法和变量都是final的,并不需要明确地将某个方法声明为final.

    public final class TestFinal{
        public static final int I=1;//final类中的数据成员可以是final的
        protected int j;//final类中的数据成员可以不是final的
        public void f(){}//final类中的方法是final的,可以不明确声明
        public final void g(){}//final类中的方法可以声明为final的,不过没什么意义
    }

    3.final方法不能被子类的方法覆盖,但可以被继承。

    public class TestFinal extends FinalOnMethod{
        public static void main(String[] args) {
            TestFinal tFinal=new TestFinal();
            tFinal.One();
        }
    }
    class FinalOnMethod{
        public final void One(){
            System.out.println("hello,我是一个final方法,但是我所在的类,没有final修饰哦!!!!!!!!!!!!!");
        }
    }

    下面我们来重写这个被final修饰过得方法.

    编译时就报错了.

    由此我们联想到私有方法也是不可被继承的.

    因为系统把私有成员当做final处理.我们也可以将一个私有成员表示成fianl的.但是这没什么意义.

    4. final成员变量表示常量,只能被赋值一次,赋值后值不再改变,如果强行赋值会出现编译错误。

    5.final不能用于修饰构造方法.构造方法不存在被继承,也就不可能被重写,也就是说构造方法本身就是最终的,没必要使用final标示.

  • 相关阅读:
    JWT实现用户权限认证
    给你的网页添加一个随机的BGM
    Git版本控制
    常见数据的解析
    PHP处理CSV表格文件的常用操作方法是怎么样呢
    php curl语句的用法
    PHP操作Memcache基本函数的方法
    PHP使用PHPExcel删除Excel单元格指定列的方法是怎样
    php单链表实现的代码
    PHP中Array关于数组的用法
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/4966832.html
Copyright © 2011-2022 走看看