行业知识
JAVA——继承
前言:
继承是java的面向对象编程的四大基本特性之一,合理的使用继承,能大大提高程序的开发效率,有效的减少代码的冗杂和重用,让使用者的代码更加清晰并且易于管理。可能有人会想:继承是什么?为什么需要继承?下面就来由我一一解答吧。
1.继承
(1)概念
继承机制:它允许程序员在保持原有的类的特性的基础上进行扩展,延伸增加新功能,专门用来进行共性抽取,实现代码复用。
如图,面条和面包都是食物(共性),但各有不同,一个有汤有水,一个干干巴巴,但他们都是食物,都能解决饱腹问题,都有名字,也有热量(kal),所以就将他们的共性提取出来,统一放在父类里面,让子类继承父类的属性,免得重复使用代码。这就是继承关系。
注:继承中可以支持多层继承,但不推荐太多,且一个类只能拥有一个父类,不支持多个父类。
(2)语法
关键字:extends(表示继承关系)
语法:修饰符 class 子类名称 extends 父类名称 {...}
如图表示下上面图片的父类和子类:
注:子类会将父类的属性和方法继承到子类当中
2.父类成员访问
子类的成员访问父类成员遵循着就近原则
1.通过子类对象访问父类与子类不同方法或变量时,优先在子类中寻找,找不到就在父类中找,父类子类都找不到,则编译报错
2.通过子类对象访问父类和子类同名的方法时,参数不同构成重载,调用只需要传合适的参数即可。
3.super关键字
若是只想固定的访问父类成员,java提供了一个关键字:super。
该关键字的主要作用是在子类的方法中调用父类的成员
this和super:
相同点:
只能在类的非静态方法使用,用来访问非静态的成员方法和属性
在构造方法调用时,必须是第一条语句,不能同时存在!!!(下面会讲到构造方法)
不同点:
this是当前对象(调用实例方法的对象)的引用,super子类继承父类的成员的引用。
在非静态成员方法中,this访问的是子类的属性,super则是访问继承下来父类的属性。
访问权限:
(super只能在静态的方法中使用,因为super依赖于对象,static不依赖与对象)
4.子类构造方法与父类构造方法
若是子类父类同时拥有构造方法,究竟先调用谁的呢?
优先调用父类的构造方法
因为子类继承父类,子类对象构造时,先调用基类的构造方法,先行帮助父类完成代码的实例化赋值,子类才能够调用父类的成员。
如果加上代码块来理解,则先后顺序如图:
优先执行静态的,在类的加载时运行着(但静态只执行一次)。然后在执行父类的实例化和构造方法,然后才轮到子类的实例化和构造方法。
5.final关键字
final可以修饰变量,成员方法以及类。
final修饰变量:
修饰后的变量转变为常量
final修饰方法:
表示该方法不能被重写
final修饰类:
表示该类是个封装类,不能被继承
6.继承与组合
组合就是将一部分类规划到一个总类里面,比如汽车中由轮胎,发动机,车架等零部件组成,汽车可以看成是一个大类,轮胎,发动机,车架可以看成是一些零件类:
继承的概念就讲到这,感谢各位观看,麻烦点个赞!谢谢各位
上一篇:服务器老了变慢怎么维修?
最新文章
- Zol下载攻略,轻松获取所需资源!
- 做过饭店两三年,过来进厂工作一年多,但现在想找工作,而不知做什么工作,想做销售,文员,可因为自己没有经验,不敢去尝试,你们有什么建议呢
- 上过的课怎么排序?
- 揭秘复利盘源码,掌握财富增值的神秘力量!
- 一键重装Win10系统,轻松掌握系统重装指南
- 揭秘汉字奥秘,你不知道的衤字发音探索?
- 淘宝扭蛋机小程序开发:探索无限惊喜的购物新体验
- 云服务器怎么接受数据?
- 三十岁,因为带孩子脱岗一年半。以前毕业就到私企做了HR,一做就是五年。后来家里没人帮忙带孩子只能自己辞职带。现在孩子上幼儿园想着找工作。专员人家不要,有五年经验说我不稳定。做主管又嫌弃拖孩子,下班要早不出差不加班。现在天天发愁,像我这样的能做什么,还是学习其他技能?
- 安卓服务器怎么升级到鸿蒙?