20200729_面向对象三大特性

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通过方法重写来实现多态
  • 通过方法重写,子类可以重新实现父类的的某些方法,使其具有自己的特征
  • 通过方法重写,相同类型的对象,执行同一个方法表现出不同的行为特征,就称为多态

优点
提高代码的复用性,简化代码
缺点
不能使用子类特有方法
可以使用强转,转成对应子类类型,解决这个问题。

原文地址:https://www.cnblogs.com/shishibuwan/p/13761344.html