1)多态
1.1) 意义
多态的意义主要为两点:
1.同一个类型的引用指向不同的对象时,有不同的实现
----------行为的多态:cut(),run(),step(),getImage()......
2.同一个对象被造型为不同的类型时,有不同的功能
------------对象的多态,我,你,水
1.2)向上造型
向上造型也可以叫做自动类型转换,有如下特点:
1.超类型的引用指向派生类的对象
2.能造型成为的类型有:超类+所实现的接口
3.能点出来什么,看引用的类型
1.3)强制类型转换:
强制类型转换成功的条件只有如下两种:
1.引用所指向的对象,就是该类型
2.引用指向的对象,实现了该接口或继承了该类
1.4)Instanceof
强转时若不符合如上条件,则发生ClassCastException类型转换异常,建议:在强转之前
应先通过istanceof来判断引用指向的对象是否是该类型
案例:
public class MultiypeDemo{
public static void main(String[] args){
Aoo o = new Boo();
Boo o1 = new (Boo) o; //引用o指向的对象,就是Boo类型
Inter o2 = (Inter) o; //引用o指向的对象实现了Inter接口
//Coo o3 = (Coo) o; //ClassCastException类型转换异常
if(o instanceof Coo){ //false
Coo o3 = (Coo) o;
}else{
System.out.println("o不是Coo类型");
}
}
}
interface Inter{}
class Aoo{}
class Boo extends Aoo implements Inter{}
class Coo extends Aoo{}