Java--面向对象四(封装、继承、多态)

5、面向对象的三大特性

 5.1 封装性

 5.1.1 封装的基本思想

  将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体是类,类通常对用户隐藏其实现的细节。

5.1.2 引入封装性的原因

​  (1)追求“高内聚,低耦合”

​   高内聚 :类的内部数据操作细节自己完成,不允许外部干涉;

​   低耦合 :仅对外暴露少量的方法用于使用。

​  (2)隐藏对象内部的复杂性,只对外公开简单的接口。

 5.1.3 封装性的代码体现

  • 将类的属性xxx私化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值
  • 不对外暴露的私有的方法
  • 单例模式(将构造器私有化)
  • 如果不希望类在包外被调用,可以将类设置为缺省的。

 5.2 继承性

 5.2.1 继承的基本思想

​ 使子类的对象拥有父类的全部属性和行为,同时可以增添自己的所特有的属性和行为。这样可以节省写共同具有的属性和方法代码的时间,有利于代码的复用。

 5.2.2 继承的格式

class A extends B{}
//A:子类、派生类、subclass
//B:父类、超类、基类、superclass

 5.2.3 继承的目的

  • 减少了代码的冗余,提高了代码的复用性
  • 便于功能的扩展
  • 为之后多态性的使用,提供了前提

 5.2.4 Java中继承性的说明

  • 子类继承父类后便拥有了父类的所有属性和方法
  • 父类中的private的属性或方法也被子类继承,但因封装性的原因并不能直接调用
  • 一个类可以被多个子类继承
  • Java中类具有单继承性(一个类只能有一个父类)
  • 子父类是相对的概念

 5.3 多态性

 5.3.1 多态性的概念

​   父类的引用指向子类的对象(或子类的对象赋给父类的引用)

 5.3.2 多态性的使用

​  使用前提:类的继承和方法的重写

​  使用:虚拟方法调用,在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法

 5.3.3 转型

在这里插入图片描述

​   (1)使用向下转型才能调用子类特有的属性和方法

​   (2)向下转型需要使用强制类型转换符:()

​   (3)向下转型先进行instanceof的判断,避免异常

​   (4)a instanceof A:判断对象a是否是类A的实例

发布了121 篇原创文章 · 获赞 45 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_41596568/article/details/103243298