1.接口
在Java中,用关键字interface来声明一个接口。在接口中只有方法的声明,而没有方法的实现。一个类如果没有实现接口中的所有方法,那么这个类必须被声明为abstract,即抽象的。一个abstract类是不允许实例化对象的。实现接口使用关键字implements。
2.多态
在Java中,多态的实现指的是使用同一个实现接口,以实现不同的对象实例。多态意味着一个对象可以多重特征,可以在特定的情况下,表现出不同的状态,从而应对不同的属性和方法。
通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。java 的这种机制遵循一个原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。动态运行的时候又根据型别去调用子类的方法。而假若子类的这个方法在父类中并没有定义,则会出错。 如果c是类C的一个引用,那么,c可以指向类C的一个实例,或者说指向类C的一个子类。 如果d是接口D的一个引用,那么,d必须指向实现了接口D的一个类的实例。