A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Walking Walking 中级黑马   /  2013-3-21 09:53  /  2407 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 徐盼盼 于 2013-3-21 11:34 编辑

在学习final修饰符时讲到,final可以修饰类、方法、变量。

被final修饰的类不可以被继承。是为了避免被继承,被子类复写功能。
被final修饰的方法不可以被复写。


那么被final修饰的类和方法有什么作用呢?在什么时候去使用呢?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

6 个回复

倒序浏览
这个我现在看完了视频,还没有用到,只是修饰的属性经常用,哥们学习,先别纠结记住就行了
回复 使用道具 举报
就是说final关键字修饰后的类或方法不可被继承,
所以保证了他的行为不可改变。。
如果你设计一个类或方法不是为了被继承而设计,那么就应该使用final修饰。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
1、如果你不想别人通过继承你写的类而得到别人所需要的类,这个时候你就可以将你的类用final修饰,加上了这个修饰符之后,别人就继承不了你的类了。
2、如果将方法用final修饰,这也是一样的,别人就只能继承你这个方法了,用你定义的方法,而不能覆盖。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
你可以在查一下源码,按住ctrl然后点函数,就会发现,你熟悉的System.out.println("Hello JAVA");中的System类就是final类
  1. public final class System
复制代码
有一些方法不必被继承,也不必被重写,这样才会有程序的规范性
举一个更生活的例子,Android的源码是开放的没错吧,但是,源码的过度开放导致厂商随意修改,导致Android的程序在不同的手机上出现不兼容的情况,反而更加麻烦,不是吗?

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
final是Java关键字 final所标记的成分具有终态的特征,表示最终的意思
Java中final修饰符既可以修饰类、方法,也可以修饰变量
用final修饰的类不能被继承
用final修饰的方法不可重写
用final修饰的变量最多只能赋值一次 值不可变

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
被 finall  的语句是一定被执行的

既想执行的语句,有不想被继承,就用final

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马