接口在多态中的应用
当一个函数调用接口子类的功能时,函数参数类型为接口类型,接口类型可以接收其子类对象。此时,函数可以调用的功能,为子类复写的接口类型功能。如果需要调用子类特有功能,需要对子类对象的引用类型进行判断并强转其类型。例如:
void demo(animal x)
{
if(x instanceof cat)//判断x是否属于cat类型。
{
cat c =(cat x);//如果x是cat类型,则对x进行强制类型转换,将其从动物类型转换为猫类型。
c.catchmouse();//调用猫类型对象的特有功能。
}
} |
|