interface programming

来源:互联网 发布:网络调查问卷赚钱 编辑:程序博客网 时间:2024/05/19 11:19

「针对接口编程」真正的意思是「针对超类型(s u p e r t y p e)编程」。

「针对接口编程」,关键就在多态。
    利用多态,程序可以针对超类型编程,执行时会根据实际状况执行到真正的行为,不会被绑死在超类型的行为上。「针对超类型编程」这句话,可以更明确地说成「变量的声明类型,应该是超类型,通常是一个抽象类或者是一个接口,如此,只要是具体实现此超类型的类所产生的对象,都可以指定给这个变量;这也意味着,声明类时,不用理会以后执行时的真正对象类型!」
看看下面这个简单的多态例子:假设有一个抽象类A n i m a l,有两个具体的实现(D o g与C a t)继承A n i m a l。「针对实现编程」,作法如下:
Dog d = new Dog();
d.bark();
但是「针对接口/超类型编程」,作法会如同下面:
Animal animal = new Dog();
animal.makeSound();
更棒的是,子类型实例化的动作不再需要在代码中硬编码,例如new Dog( ),而是「在运行时才指定具体实现的对象」。
a = getAnimal();
a.makeSound();

原创粉丝点击