1.多态的官方概念:
1.百度百科:
在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。
即:在程序中,是先有父类,然后通过继承才有子类;但是在现实世界和实际应用中,是先有的不同子类,再通过父类这个统一的接口去调用他们,或者对同一件事有不同的反应和状态。
同一方法可以根据发送对象的不同而采取不同的行为方式。
2.举例
比如在学校,上课铃响要上课了(lesson()方法),学生和老师对这件事情做出不同的反应动作——学生的动作是“学”,而老师的动作是“教”。(假设Person类,Student类和Teacher类是他的子类,然后都有lesson()方法,因此构成重写。)
Person p1 = new Student();
Person p2 = new Teacher();
p1.lesson();
//调用的是子类Student重写过的方法——学;
p2.lesson();
//调用的是另一子类Teacher重写过的方法——教。
(可以这么说,通过重写来实现多态)
因此可以总结多态的前提:
1.继承;父类引用指向子类对象
Father f = new Son();
2.重写:
通过调用父类中被子类重写过的方法,调用其他方法不构成多态。
(重写的前提:
1.不是static方法
2.不是private(private对子类不可见<不可继承>)
3.不是final修饰(位于常量池))
3.其他
其他的关于:
- instanceof关键词
- 多态中成员变量和成员函数的特点
- 向上转型和向下转型
看这篇:http://t.csdn.cn/XhqyS