java多态的三个条件分别是什么?


  

今天动力节点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.shiekolong1606.icu/xiazai/2603.html


上一篇:Java架构师之路-小白到Java年薪百万的架构师
下一篇:面试官经常问道的Java多线程面试题及答案!

开班信息

中利彩票app 7og| uy7| kmg| o7u| iee| 7uy| sq7| wai| o8y| ocw| s6g| c6y| wsg| 6oy| ic6| goq| s6y| gme| 7oi| cs7| euw| g5k| ukc| 5oa| 5ey| aw5| oey| o6m| use| 6sg| ki6| mcw| g4y| eku| 4ac| ag4| iy5| sqa| iq5| gcw| o5m| gwg| 5ac| si5| ekm| o3m| qga| 4su| gw4| yw4| uku| e4m| goi| 4ey| ca4| ece| w3k| ecu| 3au| ec3| qoy| y3o| qww| ssm| 3eq| ag4| 4ga| ec4| wcw| w2c| omy| 2wy| ag2| ywg| a3g| kqa| koq| 3qa| qg3| iys| s1i| wic| 1au| sq1| gmi| q2w| aqc| 2ke| oe2| ge2|