抽象类和抽象方法 接口 以及多态
抽象类和抽象方法:
-
抽象类(abstract class):
- 用于表示不完整的类,不能被实例化。
- 可以包含普通的成员变量和成员方法,也可以包含抽象方法。
- 抽象方法是没有具体实现的方法,用
abstract
关键字修饰。
-
抽象方法(abstract method):
- 用于表示不完整的方法,只有声明,没有实现。
- 只能存在于抽象类中,用
abstract
关键字修饰。 - 子类必须实现抽象类中的所有抽象方法。
-
抽象类的特点:
- 抽象类中可以有普通方法,也可以没有抽象方法。
- 抽象类不能被实例化,但可以被子类继承。
接口:
-
接口(interface):
- 用于定义一组抽象方法的集合,不包含实例变量。
- 接口中的方法默认是抽象的,不需要使用
abstract
关键字。 - 可以包含常量,常量使用
public static final
修饰。
-
默认方法(default method):
- JDK 8引入,默认方法允许在接口中定义具有默认实现的方法。
- 使用
default
关键字修饰。
-
静态方法(static method):
- JDK 8引入,允许在接口中定义静态方法。
- 使用
static
关键字修饰。
-
接口的特点:
- 一个类可以实现多个接口。
- 接口之间可以存在多继承关系。
- 接口提供了一种实现多继承的机制。
多态:
-
多态:
- 同一个类的同一个方法在不同的对象上产生不同的行为。
- 通过父类的引用指向子类的对象,实现多态。
- 运行时动态绑定。
-
向上转型:
- 将子类的实例赋值给父类的引用。
- 父类引用可以调用子类重写的方法。
-
向下转型:
- 将父类的引用转换为子类的引用。
- 需要使用强制类型转换。
- 需要在转换之前使用
instanceof
判断类型。
-
instanceof 运算符:
- 用于判断对象是否属于某个类或实现了某个接口。
- 返回
true
或false
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码