黑马程序员技术交流社区

标题: 关于final [打印本页]

作者: darkpiece    时间: 2014-1-21 20:50
标题: 关于final
本帖最后由 darkpiece 于 2014-1-21 23:20 编辑

将类标记为final,会不会破坏面向对象的目的?
假如string这个类,假使有人继承过,会不会对预期操作String的程序产生影响?
作者: 廉伟杰    时间: 2014-1-21 20:56
本帖最后由 廉伟杰 于 2014-1-21 21:00 编辑

我感觉final修饰的类,不能被继承,应该是对这类有一定的保护作用的,如包装类而你说的重写String类肯定对这个类是有影响的,像
class String{

}
class Demo{
public static void main(String[]  args)
{
String s = “aa”;
}
}
就写一个这种简单的程序就会出错的,因为程序一般有一个就近原则

作者: dapeng111    时间: 2014-1-21 21:22
1、面向对象是相对于面积过程而言的,是一种思考的方式。如果一个类被定义为最终类,是说明这个类已经是最终的版本,不能对其再进行修改。这是出于安全性的考虑。也体现了java的面向对象是封装的特性。
2、String是引用类型,如果在子类中对父类同名的字符串进行重写的话,是会产生相应的影响的。
希望能帮到你!
作者: darkpiece    时间: 2014-1-21 23:20
原来如此




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2