软构笔记-7-面向对象的编程

软构7

本章大纲:

  • OOP 的基本概念
  • OOP 的显著特征
    • 封装与信息隐藏
    • 继承与重写
    • 多态、子类型、重载
    • 静态与动态分派
  • JAVA 中的一些重要的 Object方法
  • 设计良好的 Classes

基本概念

  • Object
    • State
    • Behavior
  • Classes
    所有的 object 都有一个类,类中定义了 methods 和 fields,所有的 methods 和 fields 都是类成员。
    笼统地说,一个类的方法就是它的 API。

Interface

  • interface 和 Class:定义和实现 ADT
  • 接口之间可以继承和扩展
  • 一个类可以实现多个接口
  • 一个接口可以有多种实现类

在 JAVA 中,接口用来确定 ADT 规约;类用来实现 ADT。

在 interface 中使用 default 方法
  • 在传统方法中,接口中的每个方法在所有类中都要实现
  • 通过 default 方法,在接口中统一实现某些功能,无需在各个类中重复实现它

继承与重写

重写

子类能够重写父类中非严格继承的方法,而不能继承如 final修饰的方法。

  • 重写父类方法之后,子类仍然可以在方法中使用 super() 来调用父类的方法。

构造函数的重写
子类的构造函数必须首先调用父类的构造函数 super(),从而从此追溯到 Object 类。

Abstract Class 抽象类

  • Abstract method(抽象方法):
    一个只有声明没有实现的方法被称为抽象方法,用关键字 $abstract$。
  • Abstract class(抽象类):
    至少含有一个抽象方法的类被称作抽象类。
  • Interface:
    An abstract class which has only abstract methods.

Polymorphism, subtyping and overloading 多态、子类型、重载

三种多态

  • 特殊多态
  • 参数化多态
  • 子类型多态、包含多态

Overloading 重载

  • 重载:多个方法具有同样的名字,但有不同的参数列表或返回值类型
  • 价值:方便client调用,client可用不同的参数列表,调用同样的函数
重载的规则
  • 必须有不同的参数列表
  • 相同/不同的返回值类型
  • 相同/不同的 public/private/protected
  • 可以抛出新的或者更广的检查异常

Overriding vs. Overloading

子类型多态

子类型只是超类型的子集。

  • ArrayList and LinkedList are subtypes of List.

继承和子类型:层次结构一瞥

  • Java Collections API

posted @ 2023-05-20 11:53  No3eTB  阅读(16)  评论(0编辑  收藏  举报