1、为什么说Java中的所有类都is-a Object?
因为Object是超级父类,任何类只要没有显式声明extends都继承自Object。
2、在JDK文档中查找Object的toString方法。说一说,该方法有什么用?使用Eclipse查看Object的toString方法的代码,结合代码说说该代码的用途。
类中的toString 方法可以将任意一个对象作为字符串返回,默认的格式是“类名@内地%%%%”API中很多类已经覆盖了这个方法,将其返回值的格式进行了自定义,如String类中的方法已经覆盖为返回字符串的字符序列。toString 方法在很多场合被自动调用,例如%%%一个对象时,就自动调用该对象的toString 方法,如果需要修改返回字符串的格式,%%%另外类中的覆盖toString方法。toString方法可以把对象作为字符串返回。
3、在Eclipse中查看Object的equals方法的代码,说说equals的用途。该方法被什么修饰符修饰,意味着什么?什么时候需要覆盖equals方法?结合String类的equals方法说说覆盖如何体现子类特有的特性?
Object类中的equals方法判断两个引用对象指的是不是是同一个对象,比较的是两个引用对象的内存地址是否相同。
该方法被public修饰符修饰,意味着可以被任意包访问。
当equals()方法指两个引用对象所指向的内存里的内容否相等事,需要覆盖equals方法。
所谓子类的特性,就是子类不同于父类的地方,覆盖是因为子类定义的方法与父类继承的方法的意义不同。
4、如果在子类中想要复用父类的代码,要怎么办?
(1)super().方法名
(2)类名.方法名()
5、可选:继承是复用代码的唯一方式吗?
继承不是代码复用唯一方式,类之间除了继承外,还有部分与整体的关系,即聚集关系,从纯代码复用角度讲,聚集比继承好,避免了继承与封装的矛盾,对于聚集,一个类只有一个接口,即类的实例用户接口(public),而对于继承,除了实例用户接口还有派生类接口(public和protected)