19_权限修饰符_final

 



 

1.继承权限、赋值权限 final

 1.1final 定义


 

 1.2final 用法

 


 

 1.3final 修饰类

 


 

 1.4final 修饰方法


 

 1.5final 修饰成员变量


 

 1.6final 修饰局部变量


 

1.7final 代码案例

复制代码
//final类,不能有任何子类,不能有抽象方法,不能被abstract修饰
final /*abstract*/ class FinalClass {
    int age = 99;

    void method() {
        System.out.println("FinalClass's method!");
    }
}

class Fu /*extends FinalClass*/ {
    //final修饰成员变量,当且仅当被初始化一次(直接赋值)
    final int age = 99;
    final String name;

    //final修饰成员变量,(通过构造函数赋值)
    public Fu(String name) {
        this.name = name;
    }
    //被final修饰后的成员变量,不能有setter方法
/*    public void setName(String name) {
        this.name = name;
    }*/

    //final修饰成员方法,该类的子类将无法重写该方法
    final void finalMethod() {
        System.out.println("it's finalMethod!");
    }
}

class Zi extends Fu {
    //父类有含参构造,那么子类也必须有含参构造,并且为父类构造赋值super(x)
    public Zi(String name) {
        super(name);
    }

    public void method() {
        //final修饰局部变量(基本数据类型),第一次被赋值后,该变量值将无法被修改
        final int age;
        age = 99;
        /*age = 88;*/
        //final修饰局部变量(引用类型),第一被赋值后,该引用的地址值将不能改变(对象内容是可以改变的)
        final Fu fu = new Fu("");
        /*fu = new Fu("");*/
        System.out.println(age);
    }
    //父类方法被final修饰后,将不能被子类重写
    /*    void finalMethod() {

    }*/

}
复制代码

 

2.访问权限

2.1 public

 


 

 2.2 protected

 


 

 2.3 (default)

 


 

 2.3 private 

 

posted @   学而不思则罔!  阅读(159)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示