1、面向对象三大特性
封装、继承、多态
2、封装
封装--把对象的内部细节封闭起来,只提供操作对象属性的公共方法
java里面通过将属性设置成私有的,对属性都使用暴露出来的公共接口去操作。这样数据才更安全、更好维护
2.1 封装的好处
通过公开方法访问数据,可以从方法里加入逻辑控制,避免不合理的访问,可进行数据检查,保证数据完整性,便于
后期修改,提高代码的可维护性
2.2 封装的实现
- step1:属性私有化:隐藏对象的属性和实现细节,不允许外部直接访问
- step2:使用公开的方法操作和访问属性(get/set)
3、继承-关键词extends-super() this() 都必须要写到构造方法里面的第一行
修饰符 class SubClass extends SuperClass { //类定义 }
java中的继承:继承是从已有的类中派生出新的类,新的类能继承已有类的属性和行为(方法),并能扩展新的
能力。
3.1 继承的好处
- 提高了代码复用性 -- 提取公共部分到父类中,子类继承于父类
- 代码的维护性更高
3.2 继承特点
- 如果一个类不继承任何类,默认继承Object,Object是java中的祖宗类。
- Java是单继承(一个类只能继承于一个类),多层继承(一个父类可以有多个子类)。
- 创建本类对象之前会先初始化父类对象
- 子类不能继承父类的private成员(属性,方法)
3.3 方法重写/覆盖
前提条件:
- 继承或者实现 ,子父类中出现了一模一样的方法
- 修饰符、返回值、方法名、参数都必须一模一样
作用:方法升级
注意:子类不能重写父类的构造方法
3.4 super关键字与this关键字
- super指向父类(调用父类方法或属性时候用到)
- this指向当前类(区分同名局部变量和全局变量)
- super() 调用父类构造方法
- this() 调用本类其他构造
4、多态-方法重新,父类接收子类对象
多态的概念
- 用父类类型来接收子类的对象。Java通过方法重写来实现多态。
- 通过方法重写,子类可以重新实现父类的的某些方法,使其具有自己的特征
- 通过方法重写,相同类型的对象,执行同一个方法表现出不同的行为特征,就称为多态
优点
提高代码的复用性,简化代码
缺点
不能使用子类特有方法
可以使用强转,转成对应子类类型,解决这个问题。