多态指的是同一个方法调用,由于对象不同可能会有不同的行为。
多态的要点:
1. 多态是方法的多态,不是属性的多态(多态与属性无关)。
2. 多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。
3. 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。
对象类型的转换:
向上可以自动转换类型,由子类转换成父类!
向下(由父类转换成子类)强制类型转换!以调用该对象特有的方法!
下面这个例子简单示例说明了多态的使用和对象类型的转换。
demo:
/** * 测试多态 * @author 房廷飞 * */public class TextPolym { public static void main(String[] args) { Animal a=new Animal(); animalCry(a); Dog b=new Dog(); animalCry(b); Animal b1=new Dog(); //向上可以自动转换类型,由子类转换成父类! animalCry(b1); Dog b2=(Dog)b1; //向下(由父类转换成子类)强制类型转换!以调用该对象特有的方法! b2.seeDoor(); //调用该对象特有的方法 Animal c=new Cat(); animalCry(c); } static void animalCry(Animal a1) { a1.shout(); }}class Animal{ public void shout() { System.out.println("叫了一声!"); }}class Dog extends Animal{ public void shout() { System.out.println("汪汪汪"); } public void seeDoor() { System.out.println("看门中!"); //该对象特有的方法! }}class Cat extends Animal{ public void shout() { System.out.println("喵喵喵"); }}
2019-03-13 22:52:36 房廷飞 期望明天更好的自己!