封装 继承 多态 抽象类
面向对象三大特点:继承 封装 多态
1.封装
封装:隐藏实现细节,仅对外暴露公共的访问方式
将代码抽取到方法中,这是对代码的一种封装
将属性抽取到类当中,这是对数据的一种封装
-
封装常见的体现:
1、私有成员变量,提供setXxx和getXxx方法
2、将代码抽取到方法中,这是对代码的一种封装
3、将属性抽取到类当中,这是对数据的一种封装
-
封装的好处:
1、提高了代码的安全性
2、提高了代码的复用性
【掌握】:会使用private关键字进行封装,并能够访问封装的成员
2.继承
在实际开发中,继承慎用
实现代码重写有很多种方式(组合方式),但是继承是最后考虑的方式。
重要意义:减少代码的冗余
继承就是一个类A继承了另一个类B的所有成员,并且能够访问使用那些==非私有成员==。假如多个类中存在相同属性和行为时,我们可以将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。因此继承的一个很重要的意义就是能够减少代码的冗余
继承的语法:
public class A{} public class B extends A{ } // 基于A已有成分的基础上扩展出B这个子类
==注意==:
Java是单继承的,一个类只能继承一个直接父类。
缺点:java是单继承,一旦使用,就不能继承其他类。
但Java支持多层继承,父类暴增。
知识点:
方法的重写与方法的重载
方法重写:Override 子类重写父类方法 子类对父类不满意,重新实现方法体。其方法名,参数列表,返回值类型,访问修饰符都一样。
方法重载:OverLoad 同一个类中,方法名相同,但参数列表不一样的一组方法。
未重写 | 去调用 | 调用的是父类方法 |
重写 | 去调用 | 调用的是子类方法 |
重写 | 需要调用父类被重写的方法 | super.父类方法( ) |
idea 快捷键 alt + insert 生成方法签名
直接生成快捷键:ctrl + O
注意事项:子类方法覆盖父类方法,必须要保证权限大于等于父类权限
继承关系中构造方法的执行先后问题:
父类静态代码 >子类静态代码 >父类构造方法 >子类构造方法