多态Polymorphism
父类的方法在子类当中有不同的实现
编译时期不能识别动物指向哪个对象。运行多态。
接口内部执行特点:动态联编,动态多态。
前提:
(1)继承
(2)父类定义成抽象类。为子类提供一个模板。
模板模式设计:
在类中定义了某个算法的骨架,但不具体实现,而在其子类中实现。
动态多态:
在编译阶段并不能确切地知道将要调用的方法,只有在程序执行时才能确定将要调用的方法,为此要确切地知道要调用的方法,要求联编工作在程序运行时(动态联编)进行,这种在程序运行时进行的联编工作为动态联编。
适配器模式:
将用户不同的东西转换成同一代码(拥抱需求),上转型为了实现多态。
接口(interface)
Public interface person
属性:默认是public final static,显性赋初值。而且不能再赋值了。
int a=10;
方法:默认有public abstract。void turnOn();
接口不能创建对象
接口里面没有构造方法。
接口里面没有初始化块和静态初始化块。
子接口可以继承多个父接口,注意多个接口的相同的抽象方法。
接口的实现(implements):
如果接口跟方法放在一起,就是默认的。
类对接口里的方法重写叫实现。
接口被子类继承,子类重写抽象方法叫实现。
接口最后也会编译成字节码文件。
new TestIf1( ):
实现接口类对象的地址
if1 t=new TestIf1( );
不叫上转型,叫接口的回调。
接口的语义:(功能规范)
一个类可实现多个无关的接口
接口不是必须的,可以提高可维护性。
类和类之间是单继承
接口和接口之间是多继承
类和接口之间,一个类可以实现多个接口。