java基础之多态

本文详细探讨了Java中的多态和重载特性。通过实例展示了当父类引用指向子类对象时,调用覆盖方法会执行子类的方法,而与引用类型无关。同时,重载的调用则根据参数类型决定,与引用实际指向的对象类型无关。总结了多态的两大类别:静态多态(重载)和动态多态(覆盖),并强调了它们在方法调用中的区别。
摘要由CSDN通过智能技术生成

1.当父类引用指向子类引用时,调用一个覆盖了父类方法的引用,到底是调用子类里面的方法还是父类里面的方法呢?
继承关系:

public class Students extends user

父类里的方法

   public int manyage(int age){
      System.out.println("user function");
      return this.age*2;
   }

子类方法覆盖父类方法

    public int manyage(int age) {
        System.out.println("students function");
        return this.age*3;
    }

父类引用指向子类引用

user user=students;

调用方法:

 System.out.println("which function used:"+user.manyage(students.age));

结果
在这里插入图片描述
结论:当我们调用一个指向了子类对象的父类对象的多态方法时,执行的是子类对象里的方法,也就是说:
付给调用哪个方法,和参数的引用类型无关,和引用的实际指向的类型有关
于此相反的是:
重载调用哪个方法,和参数的引用类型相关,和引用实际指向的类型无关,原因在于重载本身就是在参数所指对象下面操作。当然和当前类型相关。
甚至是个null也可以,但是要用强制类型转换,告诉Java这个类型是什么,否则找不到一个唯一的方法去调用

        user user=null;
        user=students;
        System.out.println("which function used:"+user.manyage(students.age));

在这里插入图片描述
重载方法的调用就是只和参数类型类型,不管是基础类型还是自定义类型;如果调用的时候参数类型没有完全匹配,就按照继承关系往下撸:就是从继承往回找,
举例:

继承关系:

public 2 Students extends 1
public 3 Students extends 2
public 4 Students extends 3

若以4为参数被调用,但是重载方法里没有以4为参数的方法,那就会把3作为参数,如还是没有就以2为参数,依次往回;

总结:
多态分为:
静态多态:重载,以参数类型进行区别
动态多态:覆盖,以继承关系进行区别

重载的调用只与参数类型有关,与参数的引用实际指向的类型无关
覆盖的调用与引用实际指向的类型有关,与引用本身的类型无关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值