A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王训印 中级黑马   /  2015-7-28 21:04  /  266 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
2.多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象。
3.作用: 多态的存在提高了程序的扩展性和后期可维护性
4.好处:
提高了代码的扩展性,前期定义的代码可以使用后期的内容。
5.弊端:
前期定义的内容不能使用(调用)后期子类的特有内容。
多态毕老师金典代码:
  1. /*
  2. 02. 毕老师和毕姥爷的故事
  3. 03. */
  4. 04. class 毕姥爷{
  5. 05. void 讲课(){
  6. 06. System.out.println("管理");
  7. 07. }
  8. 08. void 钓鱼(){
  9. 09. System.out.println("钓鱼");
  10. 10. }
  11. 11. }
  12. 12.
  13. 13. class 毕老师 extends 毕姥爷{
  14. 14. void 讲课(){
  15. 15. System.out.println("Java");
  16. 16. }
  17. 17. void 看电影(){
  18. 18. System.out.println("看电影");
  19. 19. }
  20. 20. }
  21. 21.
  22. 22. class DuoTaiDemo{
  23. 23. public static void main(String[] args){
  24. 24. 毕老师 x = new 毕老师();
  25. 25. x.讲课(); //Java
  26. 26. x.看电影(); //看电影
  27. 27.
  28. 28. 毕姥爷 y = new 毕老师();
  29. 29. y.讲课(); //Java
  30. 30. y.钓鱼(); //钓鱼
  31. 31.
  32. 32. 毕老师 z = (毕老师)y;
  33. 33. z.看电影(); //看电影
  34. 34. }
  35. 35. }
复制代码

6. 多态时,成员的特点:

1.成员变量
编译时:参考引用型变量所属的类中是否有调用的成员变量。有,编译通过,没有,编译失败。
运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。
简单说:编译和运行都参考等号的左边。
2.成员函数(非静态)
编译时:参考引用型变量所属的类中是否有调用的函数。有,编译通过。没有,编译失败。
运行时:参考的是对象所属的类中是否有调用的函数。简单说:编译看左边,运行看右边。
3.静态函数
编译时:参考的是对象所属的类中是否有调用的函数。
运行时:参考的是对象所属的类中是否有调用的函数。
简单说:编译和运行看左边。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马