多态是面向对象的最后一个主要特征,也是一个非常重要的特性,掌握了多态性后才可以编写出更加合理的面向对象程序。而多态性在开发之中可以体现在两个方面:
Ø 方法的多态性:重载与覆写
Ø 重载:同一个方法名称,根据不同的参数类型及个数可以完成不同的功能;
Ø 覆写:同一个方法,根据实例化的子类对象不同,所完成的功能也不同。
Ø 对象的多态性:父子类对象的转换。
Ø 向上转型:子类对象变为父类对象,格式:父类 父类对象 = 子类实例,自动转换;
Ø 向下转型:父类对象变为子类对象,格式:子类 子类对象 = (子类) 父类实例,强制转换;
对象向上转型(自动完成)
多态的好处在于可以将参数统一,并且在有多个子类的情况下,调用不同子类中被覆写的方法
而向下转型是为了让父类可以调用子类中的方法
只有先向上转型确定了关系以后才可以发生向下转型
对象向下转型
错误的向下转型操作
程序执行结果:
Exception in thread "main" java.lang.ClassCastException:A cannot be cast to B
atTestDemo.main(TestDemo.java:29)
instanceof 关键字
Ø 为了保证转型的顺利进行,在Java里面提供有一个关键字:instanceof,利用此关键字可以判断出某一个对象是否是指定类的实例,使用格式如下:
Ø 对象 instanceof 类 返回boolean型
程序执行结果:
true(“a instanceofA”语句执行结果)
true(“a instanceofB”语句执行结果)
false(“null instanceof A”语句执行结果)
今天的分享就到这里了,大家看完后学会了吗?
如果觉得文章对您有用就加个关注点个赞啦~~
欢迎评论留言,留下您的建议和思路。