1.多态的基础是继承
2.什么是多态?下边就是多态!
假设Animal是Dog类的父类
在测试函数中 就可以在main()中
Animal obj1=new Animal();//本类
Animal obj2=new Dog();//父类的引用是可以指向子类和本类的对象,
Dog obj3=new Animal();(这个是报错的,子类的引用不可以指向父类引用)
3.方法的多态也是基于继承的。如果方法只有子类有,是扩展的新功能,父类没有。则不能通过本类对象使用这个方法。
4.多态引用类型转换Dog dog=new Dog();
自动类型转换:Animal animal=dog; 把dog转换成animal 相当于int变成double
强制类型转换:Dog dog=(Dog)animal; animal换成了Dog类型
Cat cat=(Cat)animal;(这个不行,为什么?因为Cat不等于Dog,animal转换成Dog类型,和Cat类型不识别)
Instanceof可以解决防线问题;
If(animal instanceof Cat){
Cat cat=(Cat)animal;
}
Else{
System.out.println(“无法转换”);
}
5.JAVA中的抽象类 abstract class 类名{}
Abstract
限制规定子类必须实现什么方法,但不关注实现细节(定义抽象方法