Java语言中的继承

Javaclass xx extendsXX()这一语句完成了简单的继承功能,抽象类以及抽象方法的使用无疑给继承中的父类锦上添花,下面是我在学习继承时自己的一些理解以及想法,作为自己学习Java过程中的小积累。

 

       继承使得大量语句不必多次重复的录入,这样一方面减小了程序员的工作量;另一方面提高了程序的检查、维护效率,加上抽象以及抽象方法的使用,更使得Java语言的安全健壮性得以彰显。

       class xx xx为子类名) extends XXXX为父类名)()在继承关系中,所有处于子类地位的类可以共享父类中的成员变量、方法,这意味着父类中的所有内容在子类中不必再次录入,而在调用该子类时均可以读取使用。extends意为扩展,即子类是父类的扩展。

 

子类对父类属性的使用

        父类中的构造器在子类中并不会被继承,而在子类中可能用到父类的这一类方法,继承中提供了"super();"这一语法,当括号为空时表示调用父类无参构造器,类似的,当括号中加入相应变量时,表示调用了父类的含参构造器。

          super也可以调用其他父类方法,具体语法是,"super.xx()"xx()是父类方法名),同样的用"super.xx"来调用父类的成员变量(xx为变量名)。

 

重写与隐藏

        继承中的子类依然可以拥有属于自己的方法或者成员变量,有的时候并不想使用父类的方法或成员变量,我们可以对父类的方法进行重写,同样的,可以将父类的成员变量进行隐藏。虽然说法不一致,但实际做法和效果是基本相同的。在对父类的方法进行重写时,只需要在子类中创建与父类相同的方法即可。需要注意的是,重写时要创建于父类相同名称、相同参数个数、相同参数类型的方法,方法的返回值可以不一样,子类的该方法的访问权限不能比被重写的方法严格(可以相同)。

        对父类成员变量的隐藏相同于方法的重写。即,当子类中创建了与父类相同方法或成员变量时,父类的方法或成员变量被重写或隐藏。当在其他类中调用到了该子类时,所能利用的成员变量或方法后的地址变为了该子类本身,表示该属性不再由父类继承所得。

 

抽象类与抽象方法

           当类名前加上了关键字"abstract"之后,该类变成了抽象类,顾名思义,抽象类不能被具体化,简单的说就是不能在被调用时创建对象。抽象类的使用在继承中起到掌控大局的作用。将父类变成抽象类使得父类完全变成为子类提供统一属性的类。如果在抽象类中给某一方法使用这一关键字修饰,该方法就成为了抽象方法,抽象方法在子类中必须被重写,由此体现出父类对子类的统一规划,子类必须执行父类的抽象方法。

        值得注意的是,抽象方法没有方法体,只有等待子类去重写。

 

final关键字

           final可以修饰成员变量及局部变量,修饰后的变量为常量。要注意的是在修饰成员变量时该变量必须赋初始值。对方法用该关键字修饰后该方法不能被改写。当类被final修饰后该类不可以被继承。

          final可以被称作是终极修饰词,与abstract的使用有些相反的意味。

 

Java语言中的继承为Java的封装带来了很好的效果,继承的使用给代码赋予了层次感。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值