什么是多态?多态有什么好处?

什么是多态?

同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。

为什么用多态?

"封装"通过合并特征和行为来创建新的数据类型。“实现隐藏”则通过将细节“私有化”,把接口和实现分离开来。这种类型的组织机制对那些拥有过程化程序设计背景的人来说,更容易理解,而多态的作用则是消除类型之间的耦合关系。继承允许将对象视为他自己本身的类型或其基本类型来加以处理。多态方法允许一种类型表现出于其他类型之间的区别,只要他们都是从同一基类导出即可,这种区别是根据方法行为的不同而表现出来的,虽然这些 方法都可以通过同一个基类来调用。

多态的应用:

  1. 转型。即只要用一个基类的引用指向子类对象时,该对象会自动提升到基类的类型。
  2. 动态绑定,也就是说在如果一个派生类上升到基类之后,当调用基类中的方法时,如果该方法在派生类中被重写了,默认会调用派生类中的重写方法。
class Cycle {
	private String name = "Cycle";

	public static void travel(Cycle c) {
		System.out.println("Cycle.ride()" + c);
	}

	public String toString() {
		return this.name;
	}
}

class Unicycle extends Cycle {
	private String name = "Unicycle";
	public String toString() {
		return this.name;
	}
}

class Bicycle extends Cycle {
	private String name = "Bicycle";
	public String toString() {
		return this.name;
	}
}

class Tricycle extends Cycle {
	private String name = "Tricycle";
	public String toString() {
		return this.name;
	}
}

public class Demo1 {
	
	public static void ride(Cycle c) {
		c.travel(c);
	}
	public static void main(String[] args) {
		Unicycle unicycle = new Unicycle();
		Bicycle bicycle = new Bicycle();
		Tricycle tricycle = new Tricycle();
		ride(unicycle);
		ride(bicycle);
		ride(tricycle);
	}
}
经验分享 程序员 微信小程序 职场和发展