1.什么是多态?
多态是同一个行为具有多个不同表现形式或形态的能力。
1.发生在有继承或者实现接口的情况下
2.方法的重写【意义体现】
3.父类引用指向子类对象【父类类型 变量名= new 子类对象()】
2.如何调用类里面的方法
静态方法--直接类名.方法名; 非静态方法--实例化对象,然后对象名.方法名;
public class AnimalAction{ public void action(Animal animal){ animal.call(); } }
给方法一个Animal类型的对象(变量),然后调用call方法
定义子类继承Animal
public class Dog extends Animal{
public void call(){
System.out.println("汪汪叫");
}
}
public class Cat extends Animal{
public void call(){
System.out.println("喵喵叫");
}
}
测试
public class Test02{
public static void main(String[] args){
AnimalAction ac=new AnimalAction();
Animal a1=new Animal();
Animal a2=new Cat();
Animal a3=new Dog();
ac.action(a1);
}
}
多态的好处:在开发中可以把父类(接口类型) 类型定义为方法的形参,在实际调用时传入的实际参数就比较灵活,可以传入父类类型的对象,可以传入子类任意类型的对象
多态本质就是子类对象向上转型为父类引用(子类对象赋值给父类变量),系统是默认支持的