向上转型:
所谓向上转型是指从低精度向高精度转型,也叫自动转型,在引用数据类型中依然适用,在继承关系中沿着子类想父类向上转型是自动转型。也就是说父类的引用可以指向子类的对象。
向下转型:
也叫强制转型即从高精度向低精度转型。如果是子类的引用执行父类的对象那么就要用到强制转换,
多态的主要应用:
1)多态的参数
所谓多态的参数就是当方法的某个形式参数是一个引用的时候,与该引用兼容的任何对象都可以传递给方法,从而允许方法接受不同的数据类型的形式参数。也就是说方法的参数列表的数据类型是父类,而传递进去的值是子类对象。要用到instancesof关键字来判断。
2)异构集合:
多态最常见的应用是创建一个不是同一类型,但是有共同父类的数据集合,不同对象的集合成为异构集合。
抽象:
抽象方法:
抽象使用关键字abstract来修饰
当一个方法被申明为抽象方法时,形式必须如下:
访问修饰符 + abstract +方法名();
当一个方法被申明为抽象方法是它所的类也必须申明为抽象类。
抽象类是拿来当父类的,与final相反;
抽象类不能实例化对象。而且在其子类中抽象方法必须重写。除非子类也是抽象类。
当一个类用abstract来修饰的时候,这个类就是抽象类。它在语法上可以没有抽象方法,但是这么做便失去了意义。
原因有两个:第一 如果一个类被申明为抽象类 但是没有抽象方法也就是说所有的方法都可以实现而类却申明为抽象类,而抽象类不能实例化对象,所以说失去了意义。
第二: 既然类被申明为抽象类那么在子类中就要重写抽象方法,而抽象类中却没有抽象方法,失去了意义。