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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© taotao 中级黑马   /  2013-8-5 14:16  /  2794 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 taotao 于 2013-8-5 19:36 编辑

忽然想到一个问题,我们都知道方法可以重写,那类可不可以呢?
是不是直接写这个类,根据就近原则,就可以把系统中默认的String屏蔽了呢?
如果我只是想重写一下String类中的equal方法,其余的成员都不变,有没有像继承一样的方法,继承是不行的,因为String是final类。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

4 个回复

倒序浏览
String类是最终类,被final修饰。不可以被继承,也就没有子类。
也不可以复写String类的equals方法。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
String的类声明:public final class String
被final修饰的类是不可以被重写的。
方法的重写是指父类有一个叫A的方法,子类继承父类的时候也提供了跟父类一样的A方法,这叫父类的方法被子类重写,这是java多态的体现。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
String类是final类型的,因此不可以继承这个类、不能修改这个类。
为了实现更多功能,提高效率,用StringBuffer类。
final修饰的变量是引用不能变。

final StringBuffer st= new StringBuffer("abcd");
st=new StringBuffer(" ");是错误的。
st.append("xinde");是正确的,不会出现编译错误。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
String类是final类型的,因此不可以继承这个类、不能修改这个类。
为了实现更多功能,提高效率,用StringBuffer类。
final修饰的变量是引用不能变。

final StringBuffer st= new StringBuffer("abcd");
st=new StringBuffer(" ");是错误的。
st.append("xinde");是正确的,不会出现编译错误。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马