java多态性的理解

多态指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送的对象不同而采用不同的方式。
多态存在的三个必要条件:1.继承;2.重写;3.父类引用指向子类对象。
举个栗子:

父类和子类的创建:

public class Animal{
	public void cry(){
  		System.out.println("noting");
}
}
public class Dog extends Animal{
	public void cry(){
 	 	System.out.println("wangwang");
}
}
public class Cat extends Animal{
	public void cry(){
  		System.out.println("miaomiao");
}
}

多态性:

public static void main(String[] args){
	Cat cat = new Cat();
	cat.cry();
	Dog dog=new Dog();// 分别创建了dog 和cat的对象
	dog.cry();

	Animal a = new Animal();
	//父类中的cry()方法,输出noting
	a.cry();
	//父类引用指向子类对象
	Animal b = new Cat();
	//这里执行的是cat中的cry(),该方法在子类cat中重写,覆盖了父类中的cry(),输出miaomiao
	b.cry();
	Animal c=new Dog();
	//这里执行的是dog中的cry(),该方法在子类dog中重写了,输出wangwang
	c.cry();
}

java多态的优势
可替换性、可扩充性(增加新的子类不影响已经存在类的多态性、继承性)、接口性(多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现)、灵活性、简化性等。

你可能感兴趣的:(java)