类的继承总结

在生活中我们往往把许多东西归为一个整体,如球有篮球,足球,高尔夫球等,它们都具有球类共有的属性和方法,对于属性来说如大小,体积,重量等,对于方法亦如此。既然如此,在定义各种球的同时我们难道要重复定义相应的类,而且还要重复编写已有的代码吗??
显然,简洁之美才为我们所推崇。于是,联系生活中的继承关系,类的继承就此诞生。
Java继承的关键字是extends,格式为:
public class 类名(子类,超类,派生类) extends 类名(父类,基类) {

}
谈到继承,我们脑海中自然浮现出几个问题:子类继承了父类的哪些属性和方法?能调用哪些属性和方法?实际上,子类继承了父类所有的属性和方法,然而,却不能调用所有的属性和方法。此外,调用也分为两种情形 :
1.当子类和父类在同包下时:默认的,受保护的,公有的属性和方法能被子类的对象以及在子类中调用。
2.当子类和父类不在同一个包下时,若创建的对象不在子类或者父类中时,可调用的属性和方法就只有公有的;如果在子类的{}中,可调用的属性和方法包括公有的和受保护的。
此外谈到继承,我们也会提到“方法重写”这个名词。比如说编写打球的方法与打篮球的方法代码时,就是在进行方法重写。实现方法重写的条件:两者必须要存在继承关系,而且方法的返回值数据类型,方法名,参数个数,参数类型,参数顺序必须要完全一致。不过呢,子类在重写方法时,访问修饰符的范围可以大于或者等于父类方法的访问修饰符。俗话说:“姜还是老的辣,酒还是陈的香!”不过尼,在方法重写这里,你如果惦记这个就out了! :lol: 当实现方法重写后,如果你创建的对象是子类的对象,那么会优先调用子类的方法,如果子类没有改方法,才会执行父类中定义的方法。
再讲下一个相关的名词“自动转型”。自动转型有两种格式:
格式一:
父类 对象名;
对象名 = new 子类名(实参,...);
父类 对象名 = new 子类名(实参,...);

格式二:
第三方类中的方法
public void method(父类 对象名){
//调用的方法必须要在父类中存在
}
创建对象
父类 对象名A = new 子类名(实参,...);
子类 对象名B = new 子类名(实参,...);

调用方法
method(对象名A);
method(对象名B);
它的条件也是两者必须有继承关系。可以发现,使用自动转型,我们能实现多态(由方法重载,继承,方法重写,自动转型等技术点的组合),减少重复的代码。只是它也存在缺陷,Java在编译程序时,只会根据对象名的类型,去查找是否存在该方法,如果存在,则通过编译,如果不存在则报错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值