多态(polymorphism)
多态指的是同一个方法调用,由于对象不同可能会有不同的行为。多态的应用可以使程序更加灵活便捷。
多态的要点:
1、 多态是方法的多态,不是属性的多态(多态与属性无关)
2、 多态的存在要有三个必要条件:继承、方法重写、父类引用指向子类对象。
3、 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。
1 package com.sanyuan.polymophism; 2 3 public class Animal { 4 public void shout(){ 5 System.out.println("叫一声!"); 6 } 7 8 } 9 10 class Dog extends Animal { 11 @Override 12 public void shout() { 13 // TODO Auto-generated method stub 14 System.out.println("汪汪汪!"); 15 } 16 17 } 18 19 class Cat extends Animal{ 20 @Override 21 public void shout() { 22 // TODO Auto-generated method stub 23 System.out.println("喵喵喵!"); 24 } 25 }
1 package com.sanyuan.polymophism; 2 3 public class AnimalTest { 4 5 static void animalCry(Animal a){ 6 a.shout(); //多态 7 } 8 9 public static void main(String[] args) { 10 Dog d = new Dog(); 11 animalCry(d); 12 animalCry(new Cat()); 13 //Animal a = new Cat(); //父类引用指向子类对象;向上类型转换,自动的 14 } 15 16 }