多态性是指允许不同类的对象对同一消息作出响应。 多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势, 很好的解决了应用程序函数同名问题。多态有两种表现形式:重载和覆盖首先说重载(overload)。 父类对象时编译时类型,子类是运行时类型 子类继承了父类的方法,因为父类之下的子类有很多,而且各种不同, 所以子类就会去复写父类中提供的一些方法,以至于子类的方法返回结果和父类不同, 当子类的方法覆盖了父类的方法时,引用对象所指向的是子类此时的方法属性和在父类中没有被覆盖的方法, 而那些子类自己新增加的特殊方法则不体现出来. 简而言之就是多态的出现使相同父类的事务有不同的结果,从而体现出多种状态---->多态!! 在java中,对象变量是多态的.而java中不支持多重继承。动态绑定:调用对象方法的机制。
1)编译器检查对象声明的类型和方法名。
2)编译器检查方法调用的参数类型。
3)静态绑定:若方法类型为priavtestaticfinal编译器会准确知道该调用哪个方法。
4)当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用x所指向的对象的实际类型相匹配的方法版本。
5)动态绑定:是很重要的特性,它能使程序变得可扩展而不需要重编译已存代码。 |