Java多态
在面向对象程序语言中,多态的是一项重要的基本特征。通过多态的技术可以在程序设计中,使得程序设计更为简单,清晰。比如动物有猫,狗,猪等等。除去它们所特有的特点以外,他们也存在共性,比如都会进食,休息,行走等行为。那么在OOP中,多态从此所引入的。
0.向上转型
在程序设计的过程中我们不知道所操作对象的具体行为,但是知道它所拥有的行为。比如就动物而言,在编写程序的过程中我们知道,猫吃鱼,狗吃肉。但是动物吃什么是我们不知道的。但在面向过程设计中,会采用判断对象类型,然后根据类型选择调用吃什么。在OOP中,这种问题解决轻而易举。
代码栗子🌰
class Animal { |
从上面的例子我们不难看出,如果加入一个新的类型比如Pig,那么直接创建新的类,并覆盖food和sleep方法就可以。如果在面向过程语言设计中,每当引入一个新的类型,那么就要增加一个新的函数,然后再加入到主函数中。这样维护起来的成本会大大增加。而多态的出现,在howToEat和howToSleep函数中的参数直接设置成基类类型,在真正的对象调用的时候,程序语言会根据对象的真实类型所去调用其自身的方法。
1.向下转型
2.继承与多态设计
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.