java 多态 -- 三定义两方法

目录

1、多态口诀 - 三定义两方法

2、具体内容


1、多态口诀 - 三定义两方法

三个定义

  • 父类定义子类构建;
  • 接口定义实现类构建;
  • 抽象类定义实体类构建。

两个方法

  • 方法重载;
  • 方法重写。

2、具体内容

方法重载:一个类中重载方法。方法名相同,参数不同,功能不同。

方法重写:子类重写父类方法,重写方法体。方法名、参数相同。功能不同。

Java中,多态允许我们使用父类型的引用(父类对象或接口对象)来创建和操作子类的对象。这意味着你可以用统一的方式来处理各种不同类型的对象,这与直接定义特定类型对象的主要区别在于灵活性和通用性。 **动态绑定(晚绑定) vs 静态绑定(早绑定)** 1. **直接定义对象(静态绑定)**: 当你在代码中明确指定一个变量的类型,并直接创建该类型对象实例时,编译器会在编译阶段确定调用的具体方。例如: ```java Animal myAnimal = new Dog(); myAnimal.eat(); // 直接调用Dog类的eat方 ``` 这,`eat()`方是在编译时确定的,不会随着运行时对象的实际类型改变。 2. **使用多态(动态绑定)**: 使用父类型的引用,如`Animal`类型的引用指向一个`Dog`实例时,`eat()`方的调用会取决于实际对象的类型,这是在运行时根据对象实际类型确定的。比如: ```java Animal myAnimal = new Dog(); // 这myAnimal是一个Animal类型的引用 myAnimal.eat(); // 实际调用的是Dog类的eat方 ``` 这的`eat()`是在运行时根据myAnimal所引用的对象的实际类型来确定的,这就是动态绑定。 **优势**: - 提高代码复用性和灵活性,因为你可以使用相同的接口处理不同类型的具体实现。 - 方便扩展,无需修改已有的客户端代码即可添加新的子类。 **相关问题--:** 1. 多态对于程序设计有哪些好处? 2. 何时你会选择使用多态而不是直接定义对象? 3. 动态绑定是如何影响程序性能的?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值