多态是一种抽象行为,它允许程序员面对抽象编程而不是具体的实现类,从而增强代码的扩展性。
1. 抽象与具体
- 抽象:代表一类事物的共同特征,例如“水果”。
- 具体实现类:代表抽象概念的具体实例,例如“苹果”。
大家可能不是很理解什么是抽象什么是具体,我举个可能不是很恰当,但是很好理解的例子:比如某个人很喜欢吃苹果,我们在写文童描述他的时候可以写他很喜欢吃苹果,也可以写他很喜欢吃水果。
2. 多态的意义
通过一个生活化的例子来理解多态:
- 如果我们描述一个人喜欢吃苹果,但某天他开始喜欢吃桃子,如果之前我们写的是“他很喜欢吃水果”,就不需要修改;如果写的是“他很喜欢吃苹果”,则需要替换成“桃子”。这展示了多态带来的灵活性。
3. 代码示例
- 定义一个父类
Person
和一个子类Student
。 Person
类有一个方法work()
,Student
类重写了这个方法,使其行为变为“上学”。
class Person {
void work() {
System.out.println("Working");
}
}
class Student extends Person {
@Override
void work() {
System.out.println("Studying");
}
}
public class PolymorphismExample {
public static void main(String[] args) {
Person person = new Student();
person.work(); // 输出 "Studying"
}
}
‘
这样在使用的时候,对象都是 person,但是 new 不同的实现类,表现的形式不同,这也就从字面上解释的什么叫多态。