多态: 支持对象多态和行为多态, 不支持属性多态
多态的前提:
1.必须有继承或者实现关系
2.必须有父类引用指向子类对象
3.必须有方法的重写
多态的好处:
1.多态的格式, 右边的对象解耦合,随意替换
2.可以将父类作为形参, 接受所有的子类对象, 提高方法的扩展性
多态的弊端:
1.多态格式不能使用子类特有点的内容, 只能使用父类定义有的功能
2.如何非要使用子类特有内容, 需要向下转型
格式:子类类型 变量名 = (子类类型)父类引用;
向下转型的注意事项:
1.向下转型, 是一个还原操作, 如果转错了, 会出现ClassCastExcepiton类型转换异常
2.如何解决类型转化异常:通过instanceof,关键字可以帮助我们判断对象是否属于某个类型