可是,我想问的是,我们为什么不可以直接重写String类里面的compareTo()方法,我们既然可以重写Object类里面的方法,为什么不能重写String类里面的方法? 毕大大给的解释是因为String类已经被SUN公司写死了,所以我们不能,那Object类里面的为什么我们可以呢?
你能提出这种问题,说明你的基础实在是太差,你对java里基础包和java类的设计缺乏了解,建议你先熟悉一下jdk的api文档,看java的基础包里到底有些什么,常用类之间的继承和接口之间的关系是怎么样的。下面我来回答一下你的问题。 首先为什么不能重写String类?你看看api里的说明 [size=-1]java.lang
Class Stringjava.lang.Object java.lang.StringAll Implemented Interfaces:Serializable, CharSequence, Comparable<String> public final class Stringextends Objectimplements Serializable, Comparable<String>, CharSequence
看到了吗?String类继承了Object类,并实现了3个接口,而且String类前面有个final的修饰符,final修饰的类是不可能被修改和继承的,这个是基本常识,如果连这个都不能理解,那就没办法了,你只能自己去多啃下java的基本语法。还有你说Object类为什么可以被重写?这个原因很简单啊,因为他不是final的啊?Object是java里的基类懂吗?是所有类的祖宗懂吗?所有类都默认是Object的子类有木有?还是看看api里的介绍吧[size=-1]java.lang
Class Objectjava.lang.Object public class ObjectClass Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class. 什么?你说看不懂?好吧,如果你想学好java,钻研api是必须的。
|