终止继承:Final类和Final方法
来源:互联网 发布:js 所有input不可编辑 编辑:程序博客网 时间:2024/06/07 00:17
一 Final类
当关键字Final用来修饰类时候,其含义就是不能派生新的子类了,也就是说任何其他类都不能继承用Final修饰的类。
那什么时候应该使用Final修饰类呢?
报错了:Cannot override the final method from Apples 不能覆盖Apples里面的方法。 如图所示:
当关键字Final用来修饰类时候,其含义就是不能派生新的子类了,也就是说任何其他类都不能继承用Final修饰的类。
那什么时候应该使用Final修饰类呢?
答:只有当需要确保类中的所有方法都不被重写时才应该建议最终类(Final),Final关键字将为这些方法提供安全,没有任何人能够重写Final类中的方法,因为不能继承。
下面用代码说明下Final类不能被继承:
package com.it;public final class Apples { public static void main(String[] args) { System.out.println("我不能被继承啊");}}
package com.it;public class Apple extends Apples {}报错了:The type Apple cannot subclass the final class Apples 意思也就是说 不能继承这个Apples类。
二 Final方法
当用Final关键字修饰方法后,该方法在子类中将无法重写,只能继承。
下面代码说明这个问题:
可以被继承代码如下:
package com.it;public class Apples {public final void show(){System.out.println("我可以被继承但是不能被重写");}}
package com.it;public class Apple extends Apples {public static void main(String[] args) {Apple a = new Apple();a.show();}}输出的结果是:我可以被继承但是不能被重写
不能被重写的代码如下:
package com.it;public class Apple extends Apples {public void show(){System.out.println("重写Final方法");}}
报错了:Cannot override the final method from Apples 不能覆盖Apples里面的方法。 如图所示:
说明 Final的方法不能被继承。
0 0
- 终止继承:Final类和Final方法
- 终止继承:Final类和Final方法
- 1.阻止继承:final 类和方法
- final 实例域+final类+final方法(阻止继承)
- final方法,final类
- final方法和类
- final方法和类
- final方法和final类,内部类
- 继承;成员变量隐藏与重写;关键字super;final类和final方法
- final类和方法(阻止继承) 强制类型转换
- 继承和final
- Java继承和final
- Java final 类,final 方法,final变量
- final类与final方法
- final修饰方法和类
- final修饰类和方法
- final方法、final变量、final类、final对象—Java
- PHP面向对象final类和final方法
- 用两个栈实现队列
- 设计模式—观察者模式
- Python第三方库整理
- react三级选择联级响应
- 最简单也最复杂的设计模式 单例
- 终止继承:Final类和Final方法
- Maven 安装本地jar(备忘)
- 奋斗吧,程序员——第三十九章 人生不失意,焉能慕知己
- 在Linux终端中使用tree命令
- mac电脑使用
- Android Canvas类的应用
- springmvc自动转前台传来的时间数据
- 第十二周项目2:实现复数类中的运算符重载(1)
- LNMP(linux+nginx+mysql+php)服务器环境配置