通过实例分析java多态

 更新时间:2019年10月29日 16:51:27   作者:武神酱丶  
这篇文章主要介绍了通过实例分析java多态,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了通过实例分析java多态,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

首先来看这样的一段代码,其中对于类的定义如下:

class Parent{
  public int myValue=100;
  public void printValue() {
    System.out.println("Parent.printValue(),myValue="+myValue);
  }
}
class Child extends Parent{
  public int myValue=200;
  public void printValue() {
    System.out.println("Child.printValue(),myValue="+myValue);
  }
}

我们来一个一个的回答问题:

1.运行结果如图

2.对于这个运行结果的解释,第一行第二行都是正常的调用,第三行中,将child赋给了parent 再进行的输出,这时候我们发现结果变成了200 并且输出语句也变了。

第四句,执行了parent.myValue++;但结果并没有改变。第五行中,将parent类强行转换为子类后又进行了自增,结果变成了201.

3.对于这里的分析,我们发现子类赋值给父类是没有问题的,也就是说子类完全可以直接转换成父类。第四行的语句结果还是200,说明他对于myValue的++还是调用了父类中的Value,但最后还是输出了子类的Value.说明子类赋给父类后,只是一部分替代,并不是完全覆盖。第五句里,将父类转换成子类然后进行++,第四句第五句结合起来,可以说明子类赋值给父类,并不是所谓的覆盖,只是把原本的东西给隐藏了罢了。而强制转换后则不同,直接变成了子类。

最后,这其实告诉我们在实际应用中,我们不应该把父类和子类设置成相同的源代码和成员变量,对于程序员在编程时的理解十分不利。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java 生成随机验证码图片的示例

    Java 生成随机验证码图片的示例

    这篇文章主要介绍了Java 生成随机验证码图片的示例,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-10-10
  • Springboot使用jsp具体案例解析

    Springboot使用jsp具体案例解析

    这篇文章主要介绍了Springboot使用jsp具体案例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java中使用print、printf、println的示例及区别

    Java中使用print、printf、println的示例及区别

    Java 的输出方式一般有这三种,print、println、printf,它们都是 java.long 包里的System类中的方法,本文重点给大家介绍Java中使用print、printf、println的示例,需要的朋友可以参考下
    2023-05-05
  • Spring的@Bean和@Autowired组合使用详解

    Spring的@Bean和@Autowired组合使用详解

    这篇文章主要介绍了Spring的@Bean和@Autowired组合使用详解,Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理,产生这个Bean对象的方法Spring只会调用一次随后会将这个Bean对象放在自己的IOC容器,需要的朋友可以参考下
    2024-01-01
  • Java源码解析LinkedList

    Java源码解析LinkedList

    今天小编就为大家分享一篇关于Java源码解析LinkedList,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Java中BigDecimal,DateFormatter 和迭代器的"陷阱"

    Java中BigDecimal,DateFormatter 和迭代器的"陷阱"

    这篇文章主要介绍了Java中BigDecimal,DateFormatter 和迭代器的"陷阱",文章围绕主题展开详细的内容介绍,感兴趣的小伙伴可以参考一下
    2022-06-06
  • Spring MVC 中获取session的几种方法(小结)

    Spring MVC 中获取session的几种方法(小结)

    这篇文章主要介绍了Spring MVC 中获取session的几种方法(小结),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • idea中database不显示问题的解决

    idea中database不显示问题的解决

    这篇文章主要介绍了idea中database不显示问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java线程生命周期图文详细讲解

    Java线程生命周期图文详细讲解

    在java中,任何对象都要有生命周期,线程也不例外,它也有自己的生命周期。线程的整个生命周期可以分为5个阶段,分别是新建状态、就绪状态、运行状态、阻塞状态和死亡状态
    2023-01-01
  • SpringBoot统一返回JSON格式实现方法详解

    SpringBoot统一返回JSON格式实现方法详解

    这篇文章主要介绍了SpringBoot统一返回JSON格式实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02

最新评论