面向对象的特征(二)
-
访问修饰符
本类 同包类 同包子类 不同包类 不同包子类
private √ × × × ×
默认 √ √ √ × ×
protected √ √ √ √ ×
public √ √ √ √ √
【说明】:默认访问修饰符,具有包内可见,无论是否为子类,都能访问
受保护的,包内可见,子类可见
修饰类:public 默认的
修饰属性:方法:private 默认的 protected public
局部变量:不使用任何修饰符,使用默认的
-
继承的本质
枚举:是一种数据类型,把变量可能出现的值一一列举出来
性别: 男 女 四季:春夏秋冬 一年的月份
作用:给枚举类型赋值时
类型:enum 本质是int型
在创建子类对象之前,要先创建父类对象***
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S9hxRMGY-1628596561751)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210809141855263.png)]
-
方法重写
提问:什么是方法的重载
面试题:方法重载和重写的区别
问题:父类无法确定方法体
如何解决:
1、在父类中编写方法—虚方法
2、在父类中重写父类方法
重写规则:
1、重写方法(子类中方法)不能不被重写的方法(父类中的方法)的访问修饰符更严格
2、方法头也要相同
方法重写/方法的覆盖:在子类中重写父类的方法
原理:在运行过程中,也就是方法调用过程中,子类的方法把父类的方法覆盖掉
面试题:
1、重载是发生在同一个类中,重写是发生在子类中,子类覆盖父类的方法
2、重载:同命不同参,与访问修饰符无关
重写:同名同参,访问修饰符可以更宽泛
4.Super
super:父类对象,通过那个子类队形访问,就代表那个父类对象
super的作用:可以使用super来访问父类中的成员,很好区分开那些成员是子类的(子类使用this访问),哪些是父类的
可以调用父类的构造方法
5.明确
- 子类中的方法可以和父类的方法相同
- 子类中的属性可以和父类相同–属性不会重写,需要通过super或this进行区分
继承:概念
语法 子类extend
特点:单继承 传递性
子类继承了父类的那些成员
4个访问修饰符的访问权限
继承的本质:对象的创建顺序
方法重写:
super关键字的使用
6.多态
解决问题的思路:使用堕胎–优化方法
解决步骤:
1、在父类中编写方法
2、在子类中重写方法
3、在使用时用父类为类型
概念:统一父类类型,对同一方法表现出不同的状态,称为多态
多态具备的条件:
1、父类 方法
2、子类 不同子类以不同的方式重写父类方法
3、父类做类型,赋值子类对象
多态的好处:代码简洁,适用于程序的扩展
多态使用的技术:继承 方法重写 LSP(里氏替换原则)(父类引用指向子类)
梳理多态:优化方法
3、父类做类型,赋值子类对象
多态的好处:代码简洁,适用于程序的扩展
多态使用的技术:继承 方法重写 LSP(里氏替换原则)(父类引用指向子类)
梳理多态:优化方法