哈工大软件构造复习第七讲

本文介绍了面向对象编程的核心概念,包括接口的定义和作用,接口间的继承与实现,以及类与接口的关系。重写的概念被阐述,强调了final关键字的作用和重写规则。此外,讨论了抽象类和抽象方法的特点,以及多态的三种形式,特别是重载和重写的区别。最后,提到了泛型在Java中的应用,展示了如何声明和使用泛型变量。
摘要由CSDN通过智能技术生成

Object-Oriented Programming (OOP)面向对象的编程

Interface接口

接口:确定ADT规约

接口之间可以继承与扩展

一个类可以实现多个接口(从而具备了多个接口中的方法)

一个接口可以有多种实现类

倾向于使用接口来定义变量

接口中的每个方法在所有类中都要实现

通过default方法,在接口中统一实现某些功能,无需在各个类中重复实现它。

以增量式的为接口增加额外的功能而不破坏已实现的类

ae327f78a6394bc2b0e95791c85566f5.png

重写(Overriding)

严格继承:子类只能添加新方法,无法重写超类中的方法

如果想要一个java中方法不能被重写,必须要加上前缀final

父类型中的被重写函数体不为空:意味着对其大多数子类型来说,该方法是可以被直接复用的。对某些子类型来说,有特殊性,故重写父类型中的函数,实现自己的特殊要求
如果父类型中的某个函数实现体为空,意味着其所有子类型都需要这个功能,但各有差异,没有共性,在每个子类中均需要重写
重写时,可以利用super()来复用父类型中函数的功能,并对其进行扩展

抽象类(Abstract Class)

 

抽象方法:只有声明没有具体实现的方法。用关键词abstract来定义

抽象方法的 3 个特征如下:

  1. 抽象方法没有方法体
  2. 抽象方法必须存在于抽象类中
  3. 子类重写父类时,必须重写父类所有的抽象方法


注意:在使用 abstract 关键字修饰抽象方法时不能使用 private 修饰,因为抽象方法必须被子类重写,而如果使用了 private 声明,则子类是无法重写的

抽象类:如果一个类含有至少一个抽象方法,则被称为抽象类

抽象类的定义和使用规则如下:

  1. 抽象类和抽象方法都要使用 abstract 关键字声明。
  2. 如果一个方法被声明为抽象的,那么这个类也必须声明为抽象的。
  3. 抽象类不能实例化,也就是不能使用 new 关键字创建对象。

接口:一个只含有抽象方法的抽象类

Three Types of Polymorphism (多态) 

c0281a35d78c4d10b1d18113926ce8a5.png

 

特殊多态和重载(Overloading)

 

重载:多个方法具有同样的名字,但有不同的参数列表或返回值类型

重载🆚重写 

重载是在一个类中定义相同名字但参数不同的多个方法,调用时根据不同参数的表达来选择对应的方法,重载方法可以修改返回类型,也可以修改访问权限,不能只修改这两者,反正能够区分方法不混淆就可以。

重载时如果参数设置不当,也会造成混淆,比如(int, long)和(long, int)重载,当调用实参为(1, 1)时就会混淆

重写是子类覆盖父类的方法逻辑,和父类被重写方法具有相同的方法名称、参数列表和返回类型,不能使用更严格的访问权限,比如,父类public,子类不能是private

714c833f80714f49a9313f26899f5bdf.png

 

 泛型Generics

使用“<>”,帮助声明泛型变量

List<Integer> ints = new ArrayList<Integer>();

public interface List<E>

public class Entry<KeyType, ValueType>

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值