类的继承

假定我们定义一个学生类和大学生类,在学生类中,我们可以定义属性和方法,如果我们在大学生类中也用到了同样的方法和属性,我们不想再重新定义一次方法和属性,那么我们就需要用到继承。这体现了类与类之间的联系。因此,对于使用继承的原因有如下两个:一是减少通用的代码,提高代码的重用性;二是提高程序的扩展性,实现现实生活的继承关系。
在Java中,继承的语法格式为:
Java的关键字是:extends
格式: public class 类名(子类,超类,派生类 extends 类名(父类,基类){ }
那么对于父类和子类怎么理解呢?就好比如父亲的遗产,孩子可以继承,同样这也应用与Java中。于是,子类可以继承到父类所有的方法和属性。若子类和父类在同一个包下,默认的,受保护的(protected),公有的(public)属性和方法能被子类的对象并能在子类中调用。若子类和父类不再同一个包下,创建的对象又不在子类或者父类中的话,能被调用的属性和方法就只有公有的。如果在子类的{}中,那么可调用的属性和方法有公有的和受保护的。其中私有的为private。
当子类从父类中继承了方法后,有更加详细或更好的方法时,这时就需要根据子类自己特有的情况来重新定义方法,需要用到方法的重写。
方法的重写就是子类从父类中继承过来的方法重新写方法体。那么实现方法重写的条件是哪些呢?1、必须存在继承关系;2、方法返回值数据类型,方法名,参数个数,参数类型,参数顺序必须要完全一致;3、子类在重写方法时,访问修饰符的范围可以大于或者等于父类方法的访问修饰符。在实现方法重写后,如果你创建的对象是子类的对象,那么会优先调用子类的方法,如果子类没有改方法,才会执行父类中定义的方法。我们可以这样来理解方法重写,例如,在生活中,人们和学生选择去工作的交通方式,可以选择搭公交车去,可以选择自己开车去,也可以选择步行等,这就是方法的重写。学生继承人的属性和方法,去工作的交通方式又因为个体的不同而进行重新选择。
当我们定义完子类和父类时,将子类对象的类型定义为父类类型的写法就是自动转型,也就是说子类对象的类型可以自动转成父类类型。其条件就是一定要存在继承关系。
自动转型的格式有如下两种: 格式一: 父类 对象名;
对象名 = new 子类名(实参,....);
父类 对象名 = new 子类名(实参,...);
格式二: 第三方类中的方法
public void method(父类 对象名){
//调用的方法必须要在父类中存在
}
创建对象
父类 对象名A = new 子类名(实参,....);
子类 对象名B = new 子类名(实参,....);
调用方法
method(对象名A);
method(对象名B);
自动转型的优点能实现多态,减少重复的代码,但是在Java编译程序时,只会根据对象名的类型去查找是否存在该方法,若存在,则通过编译,否则就会报错。
当子类类型转成父类类型后就不能在调用子类特有的方法,若还想要调用子类特有的方法,则必须要通过强制转型。
对于多态,就是由方法重载,继承,方法重写,自动转型等技术点的组合。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值