final修饰符,修饰的变量、方法、类、还有一些相关注意事项
final
- final修饰变量:对于final修饰的变量来说,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的,也就是说在对其初始化之后便不能再让其指向另一个对象。
注意:
对于普通实例变量,Java程序可以对它执行默认的初始化,也就是将实例变量的值指定为默认的初始值0或null,但对于final修饰的实例变量,则必须由程序员显示的赋予初始值。
public static final int a;//这里会报错,未给a赋初始值;
- final修饰方法:final来修饰方法,那么表示该方法不能被重写,如果在父类中使用final 来修饰方法,那么该方法就被定义为private,即不可重写,即方法被私有化了。
注意:
用final修饰的方法不能被重写,但可以有多个重载。
//对于重写
class father{public final void speek() {System.out.println("Father say");}
}
class son extends father{@Overridepublic void speek() {//speek会编译报错System.out.println("sun say");}
}
//对于重载
class father{public final void speek() {System.out.println("Father say");}static void speek(int a) {System.out.println(a);}public static void main(String[] args) {father.speek(1);}
}
//编译正确:输出1
3.final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类
总结:
final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 final不能用于修饰构造方法。
final修饰符,修饰的变量、方法、类、还有一些相关注意事项相关推荐
- java中的类修饰符、成员变量修饰符、方法修饰符。
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...
- java 类修饰符、成员变量修饰符、方法修饰符总结
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...
- java中类定义修饰符_Java 中类和方法修饰符
Java 中类和方法修饰符 类的修饰 访问修饰符 修饰符 class 类名 extends 父类名称 implements 接口名称(notes: 访问修饰符符与修饰符的位置可以互换) 访问修饰符 名 ...
- c#访问修饰符修饰无效_C中的数据类型和修饰符
c#访问修饰符修饰无效 Data Types In C C中的数据类型 C中的数据类型 (Data Types in C) C has various data types to store data ...
- JAVA面向对象OOP→构造方法、this、访问修饰符、static、方法重载、JVM内存分配、GC垃圾回收、包、样例代码
构造方法 构造方法(constructor):与类名同名,没有返回值 其初始化作用:一为属性分配内存空间.二为属性赋值 构造方法不能自己调用,只能通过new实例化对象调用 隐式构造方法:对象实例化时编 ...
- 在使用 interface 声明一个接口时,只可以使用那个修饰符修饰该接口?
这是一个看似简单其实挺有深意的题目,答案应该大多数人都知道是什么,不过原理和原因相比很少有人仔细研究过.对于本题,我有三点说明,希望看到这个评论的人能从这三点中看到你以前没注意到的东西: ①接口的声 ...
- UVM设计模式 ( 二 ) 参数化类、静态变量/方法/类、单例模式、UVM_ROOT、工厂模式、UVM_FACTORY
目录 参数化的类 静态变量和方法 静态类 单例模式 全局唯一类 处理资源访问冲突 UVM_ROOT m_parent m_children run_test() find() print_topolo ...
- C 线程中容易忽视的 restrict 修饰符修饰
restrict: 告诉编译器: 更多的使用的是构造函数原型的时候需要对源码进行重构的时候需要注意相关的问题 不同的指针,指向不同的地址,不能指向相同的地址
- Java10-day01【继承(变量-构造方法访问-成员方法 访问)、super内存图、方法重写、继承、包、import、权限修饰符、final、static】
视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java ...
- java方法和变量修饰符有哪些_死磕Java基础---类,变量和方法的修饰符
欢迎关注微信公众号:一个自学的程序员 类修饰符 对于类的修饰符,毫无疑问是用来修饰类的,那么,修饰类的修饰符都有哪些? 有如下这些: 1. abstract 2. final 3. private 4 ...
最新文章
- 苹果正和激光雷达供应商谈判,自动驾驶硬件一把手:辞职,去看星辰大海
- linux shell 错误 [: =: unary operator expected 解决办法
- C语言的结构使用和结构对齐
- PHP用CURL伪造IP和来源
- 两段式状态机不可能完成的任务
- 简单的作好服务器安全的几个步骤
- [Leedcode][JAVA][第69题][x的平方根][二分查找][数学]
- spring boot配置虚拟路径(替代docBase配置)访问本地图片
- Condition梳理和总结
- 安装QT5.14.2(wins10, vs2015社区版,已安装minGW-w64)
- matlab降水时空分布图,江浙沪地区55年夏季降水时空分布规律研究
- django 设置媒体url_django-文件上传Media url的配置
- Weakly Supervised Instance Segmentation using the Bounding Box Tightness Prior 论文笔记
- QThread 结束后,不发射Finished问题
- Linux网络配置常见问题
- 流行 - 十大网络流行语揭晓:第一“做人要厚道”(转)
- 百度个性化地图如何在网页中使用?
- 深入理解Flutter动画原理,已整理成文档
- PowerBuilder篇(2)——如何连接Oracle数据库
- 设计模式之工厂方法模式(创建型)
热门文章
- bootstrap显示遮罩层
- 腾讯云轻量应用服务器内网连接互通有什么限制?
- 我们正处于并将长期处于从“艺工交叉”到“自我创造”的过渡阶段
- 如何优雅地解决最新版Chrome,即Chrom 67以后,无法离线安装插件的问题
- 什么是信噪比?信噪比越大好还是越小好?
- android-sdk-windows版本下载
- java正序输出整数_java实现:将一个数逆序输出
- vs2017支持所有版本VC
- 2008 R2 Remote Desktop Server driver RDPDR.sys cannot be started, error 577
- 【Android】BoardcastReceiver简介