• Java中的多态


    1. 子类和父类定义了一模一样的字段和方法,将会出现什么样的结果。运行以下代码,看看会出现什么样的结果。
      public class ParentChildTest {
          public static void main(String[] args) {
              Parent parent=new Parent();
              parent.printValue();
              Child child=new Child();
              child.printValue();
              
              parent=child;
              parent.printValue();
              
              parent.myValue++;
              parent.printValue();
              
              ((Child)parent).myValue++;
              parent.printValue();
              
          }
      }
      
      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);
          }
      }

      程序截图:

    2. 程序原因分析:当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。
    3. 对于多态,可以总结它为:

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

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

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

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

  • 相关阅读:
    (转载)关于一些对location认识的误区
    Python内置数据结构--列表
    Maven
    Python基础语法
    安装ipython和jupyter
    Python环境安装
    Java多线程
    SpringMVC集成springfox-swagger2自动生成接口文档
    SpringMVC拦截器
    SpringMVC异常处理器
  • 原文地址:https://www.cnblogs.com/ljysy/p/7805394.html
Copyright © 2020-2023  润新知