前言

关键字Final不仅可以用来修饰变量,而且对类及其方法的继承也有很大的影响,本文将从类与方法两个方面介绍final关键字的功能。

Final类

当关键字final用来修饰类时,其含义是该类不能再派生子类,换句话说,任何其他类都不能继承用final修饰的类,即使该类的访问权限为pubilc类型,也不能被继承;否则,将编译报错。

只有当需要确保类中的方法都不被重写时才应该建立最终(final)类,final关键字将会为这些方法提供安全,没有任何人能够重写final类中的方法,因为不能继承。

例:

package chapeter04;

final class Father { }

public class Sample3_13 extends Father

{

public static void main(String[] args)

{

}

}

报错:

可以看出,编译找不到Father类。

Final方法

当关键字final修饰方法后,该方法在子类中将无法重写,只能继承,例:

package chapeter04;

class Father

{

public final void show()

{

System.out.println("我是final方法,可以被继承,但是不能被重写");

}

}

class Son extends Father { }

public class Sample4_15

{

public static void main(String[] args)

{

// TODO Auto-generated method stub

Son s= new Son();

s.show();

}

}

运行结果:

可以看出,代码正常编译运行,final的方法show被成功继承。但是若图将final的方法在子类中重写,将会编译报错:

class Son extends Father

{

public void show()

{

System.out.println("重写Final方法");

}

}

可以看出final的方法不能被继承。

要恰当使用final方法,只有在子类覆盖某个方法会带来问题时,再将此方法设置为final方法,一般情况下不必使用。因为防止子类覆盖会丢失一些面向对象的优点,包括通过覆盖实现的可扩展性。

以上所述是小编给大家介绍的Java之终止继承:Final类和Fianl方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

java final类为什么不能继承_浅谈Java之终止继承:Final类和Fianl方法相关推荐

  1. java中修饰常量的事_浅谈java中的声明常量为什么要用static修饰

    今天定义一个类常量,想着也只有这个类可以用到,就没用static关键字修饰.结果sonar代码检查提示: Rename this field "PERSON_TYPE_USER" ...

  2. java程序的装载与检查_浅谈Java类型装载、连接与初始化

    类型装载.连接与初始化 Java虚拟机通过装载.连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用.其中装载就是把二进制形式的Java class文件读入Java虚拟机中去;连接 ...

  3. java中的标识符和关键字_浅谈java中的标识符、修饰符和关键字

    合法标识符 Java语言中,对于变量,常量,函数,语句块均有名字,我们统统称之为Java标识符.标识符是用来给类.对象.方法.变量.接口和自定义数据类型命名的. 组成:Java标识符由数字,字母和下划 ...

  4. 简述java中流的概念和划分_浅谈Java中流的概念与用途

    Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的 ...

  5. java类的命名规范_浅谈Java中的命名规范

    现代软件架构的复杂性需要协同开发完成,如何高效地协同呢? 答案是:制定一整套统一的规范. 无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全,试想如果没 ...

  6. java什么是适配器类?作用是什么?_浅谈Java适配器模式

    假期刚结束不久,也没什么好写的,今天就水下文章,讲讲设计模式对开发时的影响,做开发到现在,感觉设计模式对开发的影响还是挺大的. 这次就简单谈谈适配器模式.可能适配器模式感觉比较鸡肋,但是用到的地方还挺 ...

  7. java合并单元格的快捷键_浅谈java单元格合并的实现(转载)

    摘要:本文主要叙述如何通过建立数据库模型(单元格模型).重载JTable的三个重要方法(getCellRect(),columnAtPoint(),rowAtPoint())和继承Jtable的渲染组 ...

  8. java线程池和线程实例化_浅谈Java 线程池原理及使用方式

    一.简介 什么是线程池? 池的概念大家也许都有所听闻,池就是相当于一个容器,里面有许许多多的东西你可以即拿即用.java中有线程池.连接池等等.线程池就是在系统启动或者实例化池时创建一些空闲的线程,等 ...

  9. java守护线程的使用场景_浅谈Java守护线程

    一.在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 1.Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是 GC (垃圾回收 ...

最新文章

  1. hdoj5317【素数预处理】
  2. TCP与UDP通信协议及Java实现
  3. 8_18 比赛总结 [暑假集训]
  4. MySQL导入冲突保留两者_面试被问MySQL 主从复制,怎么破?
  5. idea新建类模板注释设置_开发者必备——IDEA配置清单
  6. Spring Boot的Properties和YAML配置文件详解:
  7. GridView的RowCommand事件中取得行索引 技巧
  8. Kibana 6.2.3修改本地时区
  9. Android解压/重新打包system.img
  10. Groovy小结:java调用Groovy方法并传递参数
  11. html5黄油,天才黄油有油无油区别 天才黄油的正确用法
  12. vscode远端编程 终极方案
  13. 软件测试之验收测试三要点
  14. 【python】查找array中非零元素的横纵坐标
  15. 互联网巨头入局汽车后市场,VIN码识别迎利好
  16. go_viper解析
  17. 小案例 CSS之旋转的可乐瓶
  18. java mysql 1366_MySql中的error-code='1366', sqlstate='HY000'错误
  19. 对话高新兴总裁侯玉清:安防企业的翻身之战
  20. 更灵敏、更精准、更智能,机器人避障也能“随心所欲”

热门文章

  1. 如何确定Android设备唯一识别码
  2. Linux下command not found的解决办法
  3. 尚医通项目仿写部分技术点总结
  4. iOS开发者,为何坚持通宵看WWDC,只为学会“啪啪写代码”新姿势?
  5. CRUISE纯电动车双电机四驱仿真模型,基于simulink DLL联合仿真模型,实现前后电机效率最优及稳定性分配
  6. 第三方登录、分享适配 IOS9 系统
  7. SqlAlchemy使用
  8. 盛元广通高校开放式实验教学管理系统
  9. Concepts NREC Max-Pac 8.7.2.0 中文版
  10. Microsoft Office Visio Professional 之包图