面向对象之多态性

多态性:
指在基类中定义的属性和方法被子类继承后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在基类及其各子类中具有不同的语义。

定义一个抽象模板,子类通过覆写方法来实现不同的行为


使用方法的重载(overloading)和覆盖(Overriding) 实现类的多态性。
方法重载
在一个类中出现多个方法名相同,参数个数或参数类型不同的方法
根据参数个数或类型来区分具体执行那个方法。
方法覆盖(重写)
指父类和子类之间的关系,子类方法与父类方法名相同,那么子类就不能继承父类的方法,此时成为子类方法覆盖了父类的方法。
通过覆盖可以使一个方法在不同子类中表现出不同的行为。


覆盖原则:
1.子类不能覆盖父类中声明为final 或者static的方法
2.子类必须覆盖父类中声明为abstract 的方法,或者子类也必须声明为abstract
3.子类覆盖父类中的同名方法时,子类的方法声明也必须和父类中被覆盖的方法的声明相同。

posted @ 2015-05-13 16:46  ITCHN  阅读(154)  评论(0编辑  收藏  举报