40、面向对象编程:多态性与接口

面向对象编程:多态性与接口详解

面向对象编程:多态性与接口

1. 多态性概述

多态性使我们能够编写程序,将共享同一个超类的对象当作该超类的对象来处理,这可以简化编程。借助多态性,我们可以设计和实现易于扩展的系统,程序中需要修改以适应新类的部分,仅仅是那些需要直接了解新类的部分。

当编译器遇到通过变量进行的方法调用时,它会检查变量的类类型,以确定该方法是否可以被调用。如果该类包含正确的方法声明(或继承了一个),则调用会被编译。在执行时,变量所引用的对象的类型决定了实际使用的方法。

2. 抽象类和方法

抽象类不能用于实例化对象,因为它们是不完整的。其主要目的是提供一个合适的超类,供其他类继承,从而共享共同的设计。能够用于实例化对象的类称为具体类,它们为声明的每个方法提供实现(有些实现可以继承)。

程序员通常编写只使用抽象超类的客户端代码,以减少客户端代码对特定子类类型的依赖。抽象类通常包含一个或多个抽象方法,抽象方法不提供实现。包含任何抽象方法的类必须声明为抽象类,每个具体子类必须为超类的每个抽象方法提供实现。构造方法和静态方法不能声明为抽象方法。

抽象超类变量可以持有从该超类派生的任何具体类的对象引用,程序通常使用这些变量以多态方式操作子类对象。多态性在实现分层软件系统时特别有效。

以下是抽象类和具体类的特点对比表格:
| 类别 | 能否实例化 | 方法特点 | 用途 |
| ---- | ---- | ---- | ---- |
| 抽象类 | 否 | 包含抽象方法,可包含有实现的方法 | 提供共同设计,减少代码依赖 |
| 具体类 | 是 | 为声明的方法提供实现 | 实例化对象执行具体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值