多态性:
允许不同类的对象对同一消息做出响应,同一消息可以根据发送对象的不同而采用多种不同的行为方式。
多态的必要条件:
1)继承
2)重写
3)向上转型(父类引用指向子类对象)
成员访问特点:
关于成员变量: 编译看左边,运行看左边!
关于成员方法(静态) :编译看左边,运行看左边!
关于成员方法(非静态):编译看左边,运行看右边!
多态的好处:
1)提高代码的扩展性
2)提高代码的维护性
多态的弊端:
不能使用子类的特有功能。
若需要使用子类的特有功能:需要使用向下转型(将父类的引用强制转换为子类的引用)
格式为:子类名 新对象 = (子类名) 旧对象
向下转型的前提是必须有向上转型