APP下载

浅谈Java之终止继承:Final类和Fianl方法

消息来源:baojiabao.com 作者: 发布时间:2024-05-08

报价宝综合消息浅谈Java之终止继承:Final类和Fianl方法

这篇文章主要介绍了Java之终止继承:Final类和Fianl方法,文中通过示例程式码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

关键字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方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小编的支援!

分享小编吐血总结的一些适合于1-5年以上开发经验的java程序员面试涉及到的绝大部分面试题及答案做成了文件和学习笔记档案以及架构视讯资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分散式、高并发等架构技术资料),希望可以帮助到大家。

获取方式:【关注 + 转发】后,私信我,回复关键字【资料】,即可免费无套路获取哦~

以下是资源的部分目录以及内容截图:

2019-11-04 09:57:00

相关文章