一、 课程概述
(1)课程大纲介绍
Java继承和多态;
多态概述,认识什么是多态;
多态基础,基于继承关系的类型复用和扩展;
设计时多态、运行时多态。
二、 继承的应用
(1)什么是多态
程序运行过程中,对象角色的切换、
程序运行过程中,对象行为的扩展
(2)继承基本语法和使用场景
多态基础:继承
继承:面向对象特征
继承基本语法结构
创建父类Father:
创建子类Son继承父类Father:
继承关系的应用:医疗项目-实体类的父类
创建父类SystemUser:
分别创建三个子类Manager、Doctor、Nurse继承父类SystemUser:
子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。
特点:在继承关系中,父类更通用、子类更具体。父类具有更一般的特征和行为,而子类除了具有父类的特征和行为,还具有一些自己特殊的特征和行为。
三、 final和super关键字
(1)final关键字
多态基础:继承
继承:基于类型的控制
final关键字:最终的类型
继承关系的限制:医疗项目-物品清单
1)在java中不允许多重继承,一个子类只能继承一个父类,不能继承多个父类;
2)java中允许多层继承;
3)在继承中子类不能访问父类中的私有成员,只能继承公共操作。但是私有成员可以通过公共方法得到访问
(2)super关键字
由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字。super 可以用来访问父类的构造方法、普通方法和属性。
继承:单继承,突破访问限制
Java中,单继承的优势
创建父类Users:
创建Doctor子类继承父类Users:
四、 方法重载与重写
(1)方法重载和方法重写
继承:方法重载和方法重写
方法的重写 (Overriding)和重载 (Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。
(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载 (Overloading)。
(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写 (Overriding)。
(3)方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。
方法重载:设计时多态,医疗项目科室领取设备记录
五、 接口和抽象类
(1)抽象类和抽象方法
继承:抽象类基本概念
抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。
基本语法:抽象类的意义及实现
抽象方法:抽象类中的逻辑体现(抽象方法只有声明,而没有具体的实现)
(2)抽象类银行存款
继承:抽象类应用操作(包含抽象方法的类称为抽象类)
1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
2)抽象类不能用来创建对象;
3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。
在其他方面,抽象类和普通的类并没有区别。
银行项目:存款流程(柜台存款、ATM存款)
(3)接口基本语法操作
接口:抽象类再次抽象(接口中可以含有变量和方法,接口中的方法必须都是抽象方法)
基本语法:接口的意义和基本语法
接口中的属性和方法
(4)接口的应用
接口是一种极度抽象的类型,它比抽象类更加“抽象”,并且一般情况下不在接口中定义变量。
接口: 接口即规范
六、 多态
(1)多态概述
对象行为的转换,方法重写实现的操作;对象角色的转换,接口多实现的操作。
(多态就是同一个接口,使用不同的实例而执行不同操作)
(2)多态操作案例
多态应用
商品秒杀系统:设计是多态的实现
商品秒杀系统:运行时多态的实现