Java底子十:多态

打印 上一主题 下一主题

主题 854|帖子 854|积分 2562

多态(polymorphism)

多态是指同一个方法调用,由于对象不同可能会有不同的举动。现实生活中,同一个方法,具体实现会完全不同。好比:同样是调用人 “用饭” 的方法,中国人用筷子用饭,西方人用刀叉,印度人用手用饭。
多态的要点:


  • 多态是方法的多态,不是属性的多态(多态与属性无关)。
  • 多态的存在要有3个须要的条件:继承、方法重写、父类引用指向子类对象。
  • 父类引用指向子类对象后,用该父类引用调用子类重写方法,此时多态就出现了。
  1. package polymorphism;
  2. public class Animal {
  3.     public void shout(){
  4.         System.out.println("叫了一生");
  5.     }
  6. }
  7. class Dog extends Animal{
  8.     public void shout(){
  9.         System.out.println("汪汪汪。。。");
  10.     }
  11.     public void seeDoor(){
  12.         System.out.println("看门中。。。");
  13.     }
  14. }
  15. class Cat extends Animal{
  16.     public void shout(){
  17.         System.out.println("喵喵喵。。。");
  18.     }
  19. }
  20. // 测试
  21. package polymorphism;
  22. public class TestPolym {
  23.     public static void main(String[] args) {
  24.         animalCry(new Dog());
  25.         animalCry(new Cat());
  26.         Animal animal = new Dog();
  27.         animal.shout();
  28.         // error: 这里就是不满住条件3,父类引用指向子类对象后,用该父类引用调用子类重写方法,此时多态就出现了。
  29.         // 这里的seeDoor并不是父类引用的方法。所以报错。
  30.         // animal.seeDoor();
  31.     }
  32.     static void animalCry(Animal a) {
  33.         a.shout(); // 可以出现多态
  34.     }
  35. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表