黑马程序员Java教程:多态

上传人:qiuji****ngye 文档编号:36741642 上传时间:2018-04-01 格式:DOCX 页数:7 大小:87.67KB
返回 下载 相关 举报
黑马程序员Java教程:多态_第1页
第1页 / 共7页
黑马程序员Java教程:多态_第2页
第2页 / 共7页
黑马程序员Java教程:多态_第3页
第3页 / 共7页
黑马程序员Java教程:多态_第4页
第4页 / 共7页
黑马程序员Java教程:多态_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《黑马程序员Java教程:多态》由会员分享,可在线阅读,更多相关《黑马程序员Java教程:多态(7页珍藏版)》请在金锄头文库上搜索。

1、多态定义:某一类事物的多种存在形态。例:动物中猫,狗。猫这个对象对应的类型是猫类型:猫 x = new 猫();同时猫也是动物中的一种,也可以把猫称为动物:动物 y = new 猫();动物是猫和狗具体事物中抽取出来的父类型。父类型引用指向了子类对象。多态性简单说就是一个对象对应着不同类型。体现:父类或者接口的引用指向或者接收自己的子类对象。作用:多态的存在提高了程序的扩展性和后期可维护性。前提:1. 需要存在继承或者实现关系。2. 需要有覆盖操作。好处:提高了代码的扩展性,前期定义的代码可以使用后期的内容。弊端:前期定义的内容不能使用(调用)后期子类的特有内容。示例 1:1.abstract

2、 class Animal2. abstract void eat();3.4.5.class Dog extends Animal6. void eat()7. System.out.println(“啃骨头“);8. 9. void lookHome()10. System.out.println(“看家“);11. 12.13.14.class Cat extends Animal15. void eat()16. System.out.println(“吃鱼“);17. 18. void catchMouse()19. System.out.println(“抓老鼠“);20. 21.

3、22.23.class Pig extends Animal24. void eat()25. System.out.println(“饲料“);26. 27. void gongdi()28. System.out.println(“拱地“);29. 30.31.32.class DuoTaiDemo33. public static void main(String args)34. Cat c = new Cat();35. Dog d = new Dog();36.37. method(c);38. method(d);39. method(new Pig();40. 41.42. p

4、ublic static void method(Animal a)43. a.eat();44. 45.复制代码运行结果:示例 2:1.class DuoTaiDemo2. public static void main(String args)3. /自动类型提升,猫对象提升到了动物类型。但是特有功能无法访问,作用就是限制对特有功能的访问。4. /专业讲:向上转型,将子类型隐藏。就不能使用子类的特有方法了。5. Animal a = new Cat();6. a.eat();7. /a.catchMouse();/报错8.9. /如果还想用具体动物猫的特有功能。10. /你可以将该对象进行

5、向下转型。11. Cat c = (Cat)a; /向下转型的目的是为了能够使用子类中的特有方法。12. c.eat();13. c.catchMouse();14.15. /注意:对于转型,自始至终都是子类对象在做类型的变化。16. /Animal a = new Dog();17. /Cat c = (Cat)a;/但是类型不能随意转换,否则可能会报出ClassCastException 的异常18. 19.20. public static void method(Animal a)21. a.eat();22. 23.24.复制代码运行结果:示例 3:1./*2.毕老师和毕姥爷的故事3

6、.*/4.class 毕姥爷5. void 讲课()6. System.out.println(“管理“);7. 8. void 钓鱼()9. System.out.println(“钓鱼“);10. 11.12.13.class 毕老师 extends 毕姥爷14. void 讲课()15. System.out.println(“Java“);16. 17. void 看电影()18. System.out.println(“看电影“);19. 20.21.22.class DuoTaiDemo23. public static void main(String args)24. 毕老师

7、x = new 毕老师();25. x.讲课(); /Java26. x.看电影(); /看电影27.28. 毕姥爷 y = new 毕老师();29. y.讲课(); /Java30. y.钓鱼(); /钓鱼31.32. 毕老师 z = (毕老师)y;33. z.看电影(); /看电影34. 35.36.复制代码运行结果:P.S.instanceof :用于判断对象的具体类型,只能用于引用数据类型判断,通常在向下转型前用于健壮性的判断。示例 4:1.class DuoTaiDemo2. public static void main(String args)3. 4.5. public static void method(Animal a)6. a.eat();7. 8. if(a instanceof Cat) 9. Cat c = (Cat )a;10. c.catchMouse();11. 12. else if (a instanceof Dog)13. Dog d = (Dog )a;14. d.lookHome();15. 16. 17.18.复制代码

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号