java多态简单例子 one

java多态简单例子 one

2011年10月16日 22:59:15 cyq1028 阅读数:59276 标签: javafunctionclassstring扩展

 
  1. /*

  2. 对象的多态性:动物 x = new 猫();

  3. 函数的多态性:函数重载、重写

  4.  
  5. 1、多态的体现

  6. 父类的引用指向了自己的子类对象

  7. 父类的引用也可以接收自己的对象

  8. 2、多态的前提

  9. 必须是类与类之间只有关系,要么继承或实现

  10. 通常还有一个前提,存在覆盖

  11. 3、多态的好处

  12. 多态的出现大大的提高了程序的扩展性

  13. 4、多态的弊端

  14. 只能使用父类的引用访问父类的成员

  15. 5、多态的应用

  16.  
  17. 6、注意事项

  18. */

  19.  
  20. /*

  21. 需求:

  22. 猫,狗。

  23. */

  24.  
  25. abstract class Animal

  26. {

  27. abstract void eat();

  28. }

  29.  
  30. class Cat extends Animal

  31. {

  32. public void eat()

  33. {

  34. System.out.println("吃鱼");

  35. }

  36. public void catchMouse()

  37. {

  38. System.out.println("抓老鼠");

  39. }

  40. }

  41.  
  42. class Dog extends Animal

  43. {

  44. public void eat()

  45. {

  46. System.out.println("吃骨头");

  47. }

  48. public void kanJia()

  49. {

  50. System.out.println("看家");

  51. }

  52. }

  53.  
  54. class DuoTaiDemo

  55. {

  56. public static void main(String[] args)

  57. {

  58. function(new Cat());

  59. function(new Dog());

  60.  
  61. Animal a = new Cat();//向上转型

  62. a.eat();

  63.  
  64. Cat c = (Cat)a;//向下转型

  65. c.catchMouse();

  66.  
  67.  
  68. }

  69.  
  70. public static void function(Animal a)

  71. {

  72. a.eat();

  73. //用于子类型有限

  74. //或判断所属类型进而使用其特有方法

  75. if(a instanceof Cat)

  76. {

  77. Cat c = (Cat)a;

  78. c.catchMouse();

  79. }

  80. else if(a instanceof Dog)

  81. {

  82. Dog c = (Dog)a;

  83. c.kanJia();

  84. }

  85. }

  86.  
  87.  
  88. }

key:向上转型、向下转型、instanceof

[java] view plain copy

猜你喜欢

转载自blog.csdn.net/u012602304/article/details/82847686
one