动力节点口口相传的Java黄埔军校
java多态的三个条件分别是什么?
2019-09-17 来源:动力节点

  

今天动力节点java培训机构小编为大家介绍java多态的三个条件,希望通过此文大家能够掌握java多态的三个条件,下面就随小编一起看看java多态的三个条件分别是什么?


timg.jpg


java多态存在的3个必要条件:


  1、要有继承


  2、要有方法的重写


  3、父类引用指向子类对象(对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接)


  对于多态,可以总结它为:


  1、使用父类类型的引用指向子类的对象;


  2、该引用只能调用父类中定义的方法和变量;


  3、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)


  4、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。


  5、如果继承的子类继承父类的的一个方法后加以重载,则该父类的引用不能使用重载之后的那个方法。


  代码示例:


      package Class.A


  public class Animal {


  private String str;


  public void voice() {


  System.out.println("普通叫声");


  }


  }


  class cat extends Animal {


  public void voice() { //子类中对父类 voice 方法的重写


  System.out.println("喵喵喵");


  }


  }


  class Dog extends Animal {


  public void voice() {


  System.out.println("汪汪汪");


  }


  public void lookdoor()


  {


  System.out.println("看门的小狗...");


  }


  }


  class Tiger extends Animal {


  public void voice() {


  System.out.println("哇哇哇");


  }


  }




  package Class.B


   public class Test {


  public static void testanimalvoice(Animal c) {


  c.voice();


  }


  public static void main(String[] args) {


  Animal a = new cat(); // 父类的引用指向子类的对象


  Animal b = new Dog(); // new后面一定是一个类,它是用来创建一个对象或实例,一个普通类在没有new之前他的属性,方法在内存中都是不存在的,


  Animal c = new Tiger();//也就是说, 只有new后这些才会在内存中存在。也就是说只有new了之后,这个类才能用.


  testanimalvoice(a);


  testanimalvoice(b);


  testanimalvoice(c);


  Dog b2 = (Dog) b; // 类对象的强制转化


  b2.lookdoor();


  }


  }


以上就是动力节点java培训机构小编介绍的“java多态的三个条件分别是什么?”的内容,希望对大家有帮助,更多java最新资讯请继续关注动力节点java培训机构官网,每天会有精彩内容分享与你。


相关免费视频教程推荐


java新手教程视频下载——满足多态的条件:http://www.bjpowernode.com/xiazai/2603.html


开班信息

同类文章

微信搜索“动力节点Java学院“或扫二维码

关注官方微信免费领学习资料

动力节点Java培训机构,行业口碑最好的Java培训机构。

立即抢名额