多态:变量具有多种形态,可以用统一的接口来调用不同的实现。
接口体现多态特征:
(1)多态参数:之前所讲的Usb接口案例,既可以接受手机变量,也可以接受相机变量,就体现了usb接口的多态;
(2)多态数组:
我们以前讲到,数组是只能存储同一种类型的数据,利用多态数组,就可以存储不同的类型了;
如何将一个接口变量赋值给一个自定义类型的变量?使用类型断言
类型断言:由于接口是一般类型,不知道具体类型,如果要转成具体类型,就需要使用类型断言;要保持原来空接口指向的数据类型和断言的数据类型一致;
为了避免输出panic报错,可以进行断言判断;
类型断言实践一:
我们给phone中加入一个方法call(),在调用usb变量时,usb.call(),肯定是不对的,因为usb可能是phone,也可能是camera,而camera是没有这个函数的,因此,在调用的时候用类型断言。
类型断言实践2:循环判断输入参数的类型