Java面向对象中的继承性

        继承性是面向对象程序设计语言的一个重要特征,通过继承可以实现代码的复用。Java语言中,所有的类都是直接或间接地继承java.lang.Object类。子类继承父类的属性和方法,同时也可以增加属性和方法,在Java语言中不支持多继承,但可以多层继承。
        继承是通过extends关键字来实现的,在定义子类时使用extends关键字指向父类,两个类之间建立了继承关系。如果父类又继承某个类,则这个类是子类的间接父类;如果没有声明extends子句,则该类的父类为java.lang.Object。
        子类可以继承父类中非私有的成员变量和方法。在类的继承中,若子类定义了与父类相同名字的变量,则子类继承父类的成员变量被隐藏:当子类执行继承自父类的方法时,处理的是继承自父类的成员变量;当子类执行自己声明的方法时,操作的是自己声明的变量。在这里进行比较:局部变量定义的作用范围为它自身所在的大括号,当成员变量与局部变量重名,局部变量会隐藏成员变量。
        若子类定义了与父类相同的成员方法,这里的相同指方法声明如修饰符、返回值类型、方法名与参数列表,这种情况称为方法的重写。通常在父类的功能不能满足子类的需求时进行方法的重写,在子类执行该方法时,会操作自己定义的方法。在这里进行比较:在同一个类中,方法名相同,但参数列表不同(如参数个数,对应位置的参数的数据类型),这种情况叫做方法的重载,方法重载与返回值数据类型无关;一般在需要实现同一功能而参数不同时进行方法的重载。
        在继承中,有两个需要注意的关键字,分别是this和super。
        1、this关键字
        this代表了当前对象的一个引用,相当于当前对象的一个名字,通过这个名字可以进行访问对象、修改对象的成员变量、调用对象的方法。this使用的场合有以下几种:
               A、成员方法的形参名与成员变量名相同,或者局部变量与成员变量同时出现并且名字相同的时候(发生局部变量隐藏成员变量的问题);
               B、有参数的构造方法中,为了达到见名知意的要求,局部变量和成员变量使用相同的名称作为标识符,这个时候经常使用:this.name=name;
               C、当有构造方法的重载时,用来引用同类的其他构造方法。
        2、super关键字
        super表示当前对象的直接父类对象的引用。super使用的场合有以下几种:
                A、若子类的成员变量名与父类的成员变量名相同时(父类中的成员变量会被隐藏);
                B、调用父类中被重写的成员方法;
                C、用来调用父类中的构造方法。
        要注意的是:super不是代表对象,super代表的是父类内存空间(方法区)的标识;每个子类的构造方法中默认有一个无参数的super(),但是最好手动给出,以增强阅读性。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值