0
点赞
收藏
分享

微信扫一扫

Java权限修饰符之final

斗米 2022-02-15 阅读 69

首先一定要明确final可以修饰 局部变量,成员变量, 方法,类。

final修饰局部变量时,对于基本类型而言,该局部变量一经赋值,便不可以被再改变。

对于引用类型而言,引用地址不可改变,但其内容可以改变。

final修饰成员变量时,需要注意必须初始化赋值。因为final修饰后的成员变量,系统不会给他默认赋值。也就是说 final string str;系统不会给他默认值为null。 并且编译器会报错。这个时候给str赋值有两种方法,一种是直接赋值,一种是在构造代码块里面进行赋值。

不初始化,一定报错。

初始化的两种方法:

1.在构造器中对final修饰的成员变量初始化:

 2.在定义final修饰的成员变量的时候就对其进行初始化赋值。

※ ※ ※ ※ ※ ※ 需要注意的是:不能在构造方法中对final修饰的成员变量初始化赋值

 

 3.final修饰方法的时候,不能与abstract修饰词同时使用,编译器会报错。因为final修饰的方法是不可改变,是不允许被继承和覆盖重写的。而abstract修饰的方法或者类。是希望被继承,覆盖重写。

 final修饰的父类方法不允许被子类重写和继承

 

 4.final修饰类的时候和修饰方法的时候一样不能与abstract修饰词同时使用,否则编译报错

 

 final修饰类后,这个类将不能够被继承,也就是太监类,只有爹没有儿子。例如String,System类就是一个final修饰的不可改变的类。特别需要注意的是,final修饰的类,其属性和方法并不是默认final修饰的。

final修饰的类只有父类没有子类。

 

 

 

举报

相关推荐

0 条评论