Java之多态
① 什么是多态?
多态(polymorphism)是具有表现多种形态的能力的特征。同一个实现接口,使用不同的实例而执行不同的操作
② 什么是向上转型?语法要求是什么?
1、 将一个父类的引用指向一个子类对象,称为向上转型(upcasting),此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法,此时通过父类引用变量无法调用子类特有的方法
<父类型> <引用变量> = new <子类型>()
自动类型转换
③ 什么是向下转型?语法要求是什么?
将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型(downcasting),向下转型可以访问子类特有的方法。必须转换为父类指向的真实子类类型,否则将出现类型转换异常ClassCastException
强制类型转换
④ 实现多态的三个条件是什么?
1、继承的存在(继承是多态的基础,没有继承就没有多态)
2、子类重写父类的方法(多态下调用子类重写后的方法)
3、父类引用变量指向子类对象(子类到父类的类型转换)
⑤ 使用多态有什么好处?
减少类中的代码量,可以提高代码的可扩展性和可维护性
◆ instanceof运算符的作用和语法格式?
判断一个对象是否属于一个类或者实现了一个接口
boolean result = object instanceof class(interface)
注:使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误,instanceof通常和强制类型转换结合使用