动力节点logo图

动力节点口口相传的Java黄埔军校
首页
课程
就业
讲师
简介
教程
首页 > Java资讯 > 正文

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.bjpowernode.com/xiazai/2603.html


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

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值998元实验班免费学
姓名
手机
提交