首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

面向对象语言特性之继承(3)

面向对象语言特性之继承(3)

方法的重写

在子类中根据自身需要对从父类继承来的方法进行重新编写,称为方法的重写,或是方法的覆盖(overriding)。
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写。
方法重写必须满足以下要求:

    方法名必须相同
    参数列表必须相同
    返回值类型相同或是其子类
    访问权限不能严于父类
    父类的静态方法不能被子类重写为非静态方法
    子类可以定义与父类同名的静态方法以隐藏父类
    父类私有方法不能重写(都不能继承)
    不能抛出比父类更多的异常

方法重写与方法重载的区别:

    方法重写是在父子类中的同名方法,而且参数列表要相同,返回值类型也要相同
    方法重载是在同一个类中,同名不同参,与返回值无关

Object类
Object类的部分方法     说明
toString( )     返回当前对象的有关信息,一个字符串对象
equals( )     比较两个对象是不是同一个对象,比较的是指针当(对象的内存地址),返回boolean值
clone( )     生成当前对象的一个副本,并返回
hashCode( )     返回当前对象的哈希代码值,默认为对象的32位内存地址
getClass( )     获取当前对象的所属类的信息,返回class对象

Object类是所有类的父类。在JAVA中,所有的JAVA类都直接或者间的继承了java.lang.Object类。在定义一个类时,如果没有显示继承某个类,那么这个类就直接继承Object类,所有对象都继承这个类的方法。
Object类的部分方法     说明
toString( )     返回当前对象的有关信息,一个字符串对象
equals( )     比较两个对象是不是同一个对象,比较的是指针当(对象的内存地址),返回boolean值
clone( )     生成当前对象的一个副本,并返回
hashCode( )     返回当前对象的哈希代码值,默认为对象的32位内存地址
getClass( )     获取当前对象的所属类的信息,返回class对象

注意:Object类equals( )方法比较的是两个对象的引用或者说地址,String类重写了equals( )方法,比较的是两个对象的值
返回列表