[size=medium]简单来说,[color=red]多态(polymorphism)[/color]是具有表现多种形态的能力的特征。更专业化的说法:同一个实现接口,使用不同的实例而执行不同的操作
通过多态可以减少类中的代码量,可以提高代码的可扩展性和可维护性。继承是多态的基础,没有继承就没有多态。把子类转换为父类称为向上转型,自动进行类型转换。把父类转换为子类为向下转型,必须进行强制类型转换。
[color=red]向上转型:[/color]向上转型后通过父类引用变量调用的方法是子类覆盖或继承父类的方法,通过父类引用变量无法调用子类特有的方法。
[color=red]向下转型:[/color]向下转型后可以访问子类特有的方法。必须转换为父类的指向的真实子类类型,否则将出现类型转换异常ClassCastException。
[color=red]
instanceof运算符:[/color]instanceof运算符用于判断一个对象是否属于一个类或实现了一个接口。
instanceof运算符通常和强制类型的转换结合使用,先通过instanceof进行类型判断,再进行相应的强制类型转换。
使用父类作为方法形参和使用父类作为返回值类型是使用多台的常用方式。[/size]
通过多态可以减少类中的代码量,可以提高代码的可扩展性和可维护性。继承是多态的基础,没有继承就没有多态。把子类转换为父类称为向上转型,自动进行类型转换。把父类转换为子类为向下转型,必须进行强制类型转换。
[color=red]向上转型:[/color]向上转型后通过父类引用变量调用的方法是子类覆盖或继承父类的方法,通过父类引用变量无法调用子类特有的方法。
[color=red]向下转型:[/color]向下转型后可以访问子类特有的方法。必须转换为父类的指向的真实子类类型,否则将出现类型转换异常ClassCastException。
[color=red]
instanceof运算符:[/color]instanceof运算符用于判断一个对象是否属于一个类或实现了一个接口。
instanceof运算符通常和强制类型的转换结合使用,先通过instanceof进行类型判断,再进行相应的强制类型转换。
使用父类作为方法形参和使用父类作为返回值类型是使用多台的常用方式。[/size]