多态是同一个行为具有不同的表现形式或形态的能力;
多态就是同一个接口,使用不同的实例用而执行不同的操作(具有实现不同功能的能力)
现实中,比如我们按下 F1 键这个动作:
- 如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;
- 如果当前在 Word 下弹出的就是 Word 帮助;
- 在 Windows 下弹出的就是 Windows 帮助和支持。
同一个事件发生在不同的对象上会产生不同的结果。
例:Animal a=new Dog; 调用a.eat方法
运行期间:a执行的是dog对象,运行的是dog中重新写的eat();
编译期间:a.eat(),a类型为animal类,调用的是抽象的eat();
使用Abstract关键字进行修饰;
抽象方法:只有声明,没有实现(即没有方法体);
抽象类可能包括抽象方法,也可能不包括抽象方法;
如果一个类中没有足够的信息来描述一个具体对象,那么这个类就是抽象类;
抽象类不能创建对象(因为包含抽象方法)其他功能与类相同(成员变量,成员方法,构造方法)
继承抽象类的类:1.必须重写抽象类中所有抽象方法
2.要么将此类也声明为抽象类