终止继承:Final类和Final方法
2016-05-18 17:23
309 查看
一 Final类
当关键字Final用来修饰类时候,其含义就是不能派生新的子类了,也就是说任何其他类都不能继承用Final修饰的类。
那什么时候应该使用Final修饰类呢?
答:只有当需要确保类中的所有方法都不被重写时才应该建议最终类(Final),Final关键字将为这些方法提供安全,没有任何人能够重写Final类中的方法,因为不能继承。
下面用代码说明下Final类不能被继承:
package com.it;
public final class Apples {
public static void main(String[] args) {
System.out.println("我不能被继承啊");
}
}
二 Final方法
当用Final关键字修饰方法后,该方法在子类中将无法重写,只能继承。
下面代码说明这个问题:
可以被继承代码如下:
package com.it;
public class Apples {
public final void show(){
System.out.println("我可以被继承但是不能被重写");
}
}
不能被重写的代码如下:
package com.it;
public class Apple extends Apples {
public void show(){
System.out.println("重写Final方法");
}
}
报错了:Cannot override the final method from Apples 不能覆盖Apples里面的方法。 如图所示:
说明 Final的方法不能被继承。
当关键字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的方法不能被继承。
相关文章推荐
- final关键字之final方法
- Java final关键字
- Java final关键字
- java回顾——final关键字的作用
- Java的final修饰符
- java——类——final
- 知乎导航栏实现
- 安卓横竖屏切换问题
- 奋斗吧,程序员——第三十九章 人生不失意,焉能慕知己
- Android Canvas类的应用
- 最简单也最复杂的设计模式 单例
- Maven 安装本地jar(备忘)
- 读了这篇文章,我对handler的消息处理机制有了进一步更透彻的了解。
- 如何在Windows系统下安装多个Redis实例
- IOS 应用生命周期
- 嵌入式工程师开发工作主要做些什么,以后收入怎样
- Python第三方库整理
- GlusterFS复制卷修复功能测试分析--brick文件丢失
- zabbix+flume+hadoop安装及其监控
- mongodb.conf配置文件详解