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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋斗@zbt 中级黑马   /  2013-10-26 19:05  /  1324 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 奋斗@zbt 于 2013-10-27 21:35 编辑

final的作用是什么啊?还有是干嘛用的,继承是怎么一回事啊??

5 个回复

倒序浏览
final的作用随着所修饰的类型而不同

       1、final修饰类中的属性或者变量

              无论属性是基本类型还是引用类型,final所起的作用都是变量里面存放的“值”不能变。

              这个值,对于基本类型来说,变量里面放的就是实实在在的值,如1,“abc”等。

              而引用类型变量里面放的是个地址,所以用final修饰引用类型变量指的是它里面的地址不能变,并不是说这个地址所指向的对象或数组的内容不可以变,这个一定要注意。

              例如:类中有一个属性是final Person p=new Person("name"); 那么你不能对p进行重新赋值,但是可以改变p里面属性的值,p.setName('newName');

              final修饰属性,声明变量时可以不赋值,而且一旦赋值就不能被修改了。对final属性可以在三个地方赋值:声明时、初始化块中、构造方法中。总之一定要赋值。      

      2、final修饰类中的方法

             作用:可以被继承,但继承后不能被重写。

      3、final修饰类

             作用:类不可以被继承。

评分

参与人数 1技术分 +1 收起 理由
To + 1 很给力!

查看全部评分

回复 使用道具 举报
final关键字
final关键字可以修饰类、方法、属性
final修饰类,类不可以被继承
final修饰方法,不可以被重写
final修饰变量,是一个常量,该常量只能赋值一次,当final修饰变量的时候常与static连用,修饰的变量名所有字母必须大写,不同单词间通过下划线连接
内部类被定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
final:修饰符,最终
1、可以修饰类,函数,变量
2、被final修饰的类不能被继承,为了避免父类被继承或父类方法被覆盖
3、被final修饰的方法不能被覆盖
4、被final修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量,也可以修饰局部变量。当在描述事物时,一些数据是固定不变的,为了增强阅读性,
    都给这些值起 个名字,便于阅读,而这些值不需要改变,所以加上final修饰,作为常量。常量的书写规范:所有字母大写,如果有多个单词组成,
    单词之间通过‘_’链接。
5、内部类定义在类的局部位置上时,只能访问该局部被final修饰的局部变量。
继承
   继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。继承使用关键字"extends" 格式为:class 子类名 extends 父类名
特点:1、提高了代码的复用性;
      2、让类与类之间长生了关系,有了这个关系,才有了多态的特性。
注意:类与类之间必须具有所属关系才能使用继承,即 … is a …。
*JAVA语言中,只支持单继承,不支持多继承。因为多继承会带来安全隐患,当多个父类中定义了相同的功能,当功能内容不同时,子类对象不知道执行哪一个。但是JAVA语言中保留了这种机制,并用另一种体现形式来完成表示:多实现。
*JAVA语言支持多层继承,是一种继承体系。
   使用一个继承体系中的功能的方法:
     1、首先查阅父类的描述,因为父类中定义了该体系中的共性功能。
     2、创建最子类的对象,一是因为父类有可能不能创建对象;二是创建子类可以使用更多的功能,包括基本功能和特有功能。
*事物之间不一定有继承关系,有可能具有聚集关系,根据关系的紧密程度又分为聚合和组合,其中组合关系练习更紧密
这是我做的笔记,希望对你有所帮助

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
时,或你在多处调用此方法,那么你的调用主体代码便会迅速膨胀,可能反而会影响效率,所以你要慎用final进行方法定义。final类当你将final用于类身上时,你就需要仔细考虑,因为一个final类是无法被任何人继承的,那也就意味着此类在一个继承树中是一个叶子类,并且此类的设计已被认为很完美而不需要进行修改或扩展。对于final类中的成员,你可以定义其为final,也可以不是final。而对于方法,由于所属类为final的关系,自然也就成了final型的。你也可以明确的给final类中的方法加上一个final,但这显然没有意义。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
To 金牌黑马 2013-10-27 16:14:02
地板
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续追问,谢谢合作
修改方法请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马