Java面试中关于多态性的一道题

1667阅读 1评论2011-07-10 高傲的活着
分类:Java

【问题】Java中实现多态的机制是什么?

答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。

     重写Overriding是父类与子类之间多态性的一种表现。

     重载Overloading是一个类中多态性的一种表现。

Java类多态性的例子:

张孝祥java就业教程源代码

  1. interface PCI//某标准化组织
  2. {
  3. void start();
  4. void stop();
  5. void NameCard();
  6. }
  7. class NetWorkCard implements PCI//网卡生产商
  8. {
  9. public void NameCard()
  10. {
  11.    System.out.println("-----网卡----");
  12. }
  13. public void start()
  14. {
  15.    System.out.println("send...");
  16. }
  17. public void stop()
  18. {
  19.    System.out.println("stop...");
  20. }
  21. }

  22. class SoundCard implements PCI//声卡生产商
  23. {
  24. public void NameCard()
  25. {
  26.    System.out.println("-----声卡------");
  27. }
  28. public void start()
  29. {
  30.    System.out.println("du..du");
  31. }
  32. public void stop()
  33. {
  34.    System.out.println("sound stop");
  35. }
  36. }

  37. class MainBoard//主板生产商
  38. {
  39. public void usePCICard(PCI p)
  40. {
  41.    p.NameCard();
  42.    p.start();
  43.    p.stop();
  44. }
  45. }
  46. class Assembler//装机员
  47. {
  48. public static void main(String [] args)
  49. {
  50.    MainBoard mb=new MainBoard();
  51.    NetWorkCard nc=new NetWorkCard();
  52.    SoundCard sc=new SoundCard();
  53.    mb.usePCICard(nc);
  54.    mb.usePCICard(sc);
  55.    mb.usePCICard(new PCI()//匿名内置类
  56.    {
  57.     public void NameCard()
  58.     {
  59.      System.out.println("------测试----");
  60.     }
  61.     public void start()
  62.     {
  63.      System.out.println("test start");
  64.     }
  65.     public void stop()
  66.     {
  67.      System.out.println("test stop");
  68.     }
  69.    }
  70.    );
  71. }
  72. }

参考资料:

http://hi.baidu.com/full68/blog/item/7375216327c902650d33fa14.html

上一篇:Flex常见问题集锦
下一篇:客户端Wehchat安装

文章评论