多态指的是同一个方法调用,由于对象不同可能会有不同的行为 。
多态的要点:
1.多态是方法的多态,不是属性的多态
2.多态存在的三个必要条件:继承,方法重写,父类引用指向子类对象
3.父类引用指向子类对象后,用该父类引用调用子类重写的方法
import java.util.Objects;
public class Wang {
public static void main(String[] args){
Animal ani =new Animal();
Dog dog =new Dog();
f(ani);
f(dog);
}
static void f(Animal a){
a.shout();
}
}
class Animal{
public void shout(){
System.out.println("叫了一声");
}
}
class Dog extends Animal{
public void shout(){
System.out.println("汪汪汪");
}
}
class Cat extends Animal{
public void shout(){
System.out.println("喵喵喵");
}
}
运行结果见下
叫了一声
汪汪汪
强制转型
1.自动向上转型,如狗可以自动转为动物
2.强制向下转型。如狗转为动物,再把动物转为狗