1.final关键字:final的使用有3种情况
(1)数据:在成员变量中用final修饰,表示了该数据的不变性,根据参数的类型又可以分为两种不同情况。如果该成员变量是基本类型,那么通过final修饰,该变量就不可以改变,如果加上static就表示了该成员变量,作为全局变量使用;如果该成员变量是引用类型,用final修饰,那么该引用不可再变,即引用的指向不可变,但是引用所指向的对象的值可以改变。
final数据的初始化在域的定义处或构造处进行,即final在使用前必须初始化。
final可以修饰方法中的参数,但是只能读不可修改。
(2)方法:方法用final修饰作用主要时为了该方法不能在继承的时候被修改,还有一个作用就是把被修饰的方法的调用转为内嵌调用以提高效率,不过不提倡用该种方式来提高效率,在比较新的jvm中,已经提供了这种功能。
类中private方法都隐式的指定为final。
(3)类:final修饰类时,表示该类不允许被继承,该类中的所有方法都被隐式指定为final方法。
2.继承初始化
当导出类执行时,即使没显示的去调用基类或打算生成一个基类对象,也会先去加载基类中的static域,然后加载导出类的static域,完成类的加载,基类构造器和导出类的构造器一样,以相同的顺序来经历相同的过程。在基类构造器完成之后,实例变量按其次序被初始化。最后构造器的其余部分被执行。
3.动态绑定:
将一个方法调用同一个方法主体关联起来被称作绑定。在运行时根据对象的类型进行绑定称为后期绑定,后期绑定也称为动态绑定或运行时绑定。java中除了static方法和final(private)方法外,其他方法都是后期绑定
4.几个缺陷:
a.只有非private方法才可以被覆盖。所以在导出类中,对基类的private方法。最好采用不同的名字。
public class A{
private void f(){System.out.println("private f()")};
public static void main(String[] args){
A a=new B();
a.f();
}
}
class B extends A{
public void f(){System.out.println("public f()")}
}
输出的结果为:
private f();
b.任何域访问操作都将由编译器解析,因此不是多态。静态方法也不具有多态性,因为它是对类来说,而不是对象。
c.在构造器内部唯一能够安全调用的那些方法是基类中的final(private)方法,调用其他方法会存在隐患。
分享到:
相关推荐
java8 集合源码 Github收藏夹 这是个收藏夹, 收集了Github上看到的各种不同的优秀工具,框架,知识合集 RPC - 阿里出品的使用范围广泛的RPC框架 - 微博出品的跨语言的RPC框架 - 百度出品的工业级RPC框架 - gRPC是一个...
java8集合源码 分布式系统 原则 降价演示 工具 Java并发 网页 HTTP Javascript 网关 认证&授权auth 单点登录 SSO 规格 虚拟机 垃圾收集 代理JVM JDBC 码头工人 库伯尼特斯 热图 强度图 地理信息系统 ETL 日程 代码...
java8 集合源码 这是个收藏夹, 收集了各种不同的优秀工具,框架,知识合集 RPC - 阿里出品的使用范围广泛的RPC框架 - 微博出品的跨语言的RPC框架 - 百度出品的工业级RPC框架 - gRPC是一个领先的, 开源的, 高性能的RPC...
java8 集合源码 Github收藏夹 这是个收藏夹, 收集了Github上看到的各种不同的优秀工具,框架,知识合集 Web框架 - Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发Swift、代码量少、学习简单、功能强大、轻量级...
Java NIO,Ron Hitchens 著,中文版 裴小星 译,Pro Java 7 NIO.2,Anghel Leonard 著,pdf文字版带书签,无安全限制
Thinking in Java 4th Edition 英文文字版,带书签 Annotated Solution Guide 有代码
Java NIO,Ron Hitchens 著,中文版 裴小星 译,pdf文字版带书签,无安全限制
java-developer-bookmark 一个java后台开发人员的常用书签导航 本人是一个java程序员,常常在日常开发中会用到线上一些工具,我个人感觉很实用的,因此分享给大家,希望大家喜欢,欢迎各位fork一起完善! 在线工具 :...
java版飞机大战源码 my-bookmark A list of resources for programmers. 整理一下个人的 bookmark ,仅供个人使用。。 mysql js plugins php java H5 tools blog icons 文档 website go ios css 安装包 docker ...
pdf 目录生成器。 启动命令:java -jar pdf-bookmark-1.0.6-all.jar 然后就可以给指定的 PDF 文件生成目录标签了,这是好像是开源的工具,忘记在哪里找到的了。
下面小编就为大家带来一篇java实现利用String类的简单方法读取xml文件中某个标签中的内容。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
基于机器人隐喻软件的业务流程自动化技术的课程材料。... :bookmark_tabs: JAVA_HOME | | :bookmark_tabs: :bookmark_tabs: :light_bulb: 小费 您可以使用markdown,徽章和emoji表情使* .md文件更具吸引力| | | |
:bookmark_tabs:计算机基础 数据结构 算法 :fire: LeetCode刷题指南 :crossed_swords:剑指报价 :teacup_without_handle: Java [!WARNING]所有笔记和代码均基于Java 8版本,基本大部分包含Java语言的全部核心...
Spring Boot-Bookrmark Rest API示例 这是在2014年8月1日由日本Grails / Groovy用户组见面会的动手研讨会上编写的Spring Boot的示例应用程序。 参见 (日语)。 怎么跑 ...$ java -jar build/libs/*.jar
BE是URL的书签编辑器,它使用XBEL XML格式存储URL和描述文本。 它是用Java编写的,并且仍在开发中。 并根据GPL获得许可。
java8集合源码书签 有趣的东西的书签集合,有些阅读或观看,有些没有。 所以链接末尾的内容可能没有价值,但它可能是。 - 用于“文档即代码”和“arc42”的 ASCIDoc 代码文档工具链,以及代码中的架构(Simon Browns...
java安卓辅助源码 Android-Personal-Bookmark 只是对个人收藏的一些浏览过的网站或书签作个记录,序号只是自己保存书签的时间顺序而已,持续更新... 温馨提示:因为现在的技术更新得太快了,所以不排除某些技术文...
三、:locked_with_key:Java多线程与并发框架:unlocked: Java多线程与并发框 (第 13 篇) 深入理解:Fork/Join框架 Java多线程与并发框 (第 14 篇) 深入理解:原子操作 Java多线程与并发框 (第 15 篇) 深入理解...
观念 该资料库包含有关...tabs::bookmark_tabs:单元测试-在Java中使用:bookmark_tabs:未定义类型的列表-从抽象到通用级别:bookmark_tabs:在Java异常 Python :bookmark_tabs:入门套件:bookmark_tabs:语言:bookmark_tabs:
Project_Bookmark_