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标示.

最新文章

  1. 前馈网络求导概论(一)·Softmax篇
  2. 在一台机器上模拟mongodb分片
  3. CEPH浅析”系列之三——CEPH的设计思想
  4. spark Basic code demo
  5. DWR在Spring中应用
  6. lintcode :搜索二维矩阵
  7. For循环复杂练习
  8. iOS-设计模式之代理反向传值
  9. [整理]k-vim-for-server通过vimrc修改vim格式
  10. 线程停止与volatile
  11. 智联python 技能摘取
  12. django(2.1) url
  13. tornado web框架简介
  14. ionic andorid apk 签名, 查看签名MD5
  15. window、Linux 文本文件转换
  16. ranch 源码分析(三)
  17. 关于小窗滑动,父级body也跟随滑动的解决方案(2)
  18. JAVA里的布尔运算符-甲骨文面试题
  19. 谷歌发布 Android 8.1 首个开发者预览版,优化内存效率
  20. X-UA-Compatible也无法解决的IE11兼容问题

热门文章

  1. linux服务之smtp
  2. SiteMesh详解
  3. CSS深入之label与input对齐!
  4. ORALCE 游标简单的实例
  5. mysql5.7.9 源码安装 (转)
  6. jquery动画效果---animate()--滚屏
  7. Hibernate3.3用户手册摘要-1-辅助类,session
  8. .NET_RSA加密全接触(重、难点解析)
  9. 【python】python异常类型
  10. 在mui中遇到的内容覆盖导航栏的问题