函数的重写(Override)和函数的重载(Overload)

主类

/*
函数的重写(Override)和重载(Overload)
    重写:
        函数的重写是面向对象中子类继承父类,父类中的函数不适用于子类中的函数,所以在子类中对父类中
        的方法进行重写,重写方法时父类与子类的方法名相同,参数类型相同,参数个数相同,不同的就是方
        法所实现的功能不同,即方法的内容不同。可以理解为重新写这个方法。
    重载:
        函数的重载是在同一个类中针对不同类型的参数而对方法进行重载,重载时函数的参数列表不同。
*/
class MethodOverrideOverload{
    public static void main(String[] args){
        //Override
        Old method=new New();
        method.write();
        //Overload
        Overload(1);
        Overload(1,2);
    }
    public static void Overload(int number){
        System.out.println("我是第 "+number+" 个方法");
    }
    public static void Overload(int number1,int number2){
        System.out.println("我是第 "+number2+" 个方法");
    }
}

父类

class Old{
    public void write(){
        System.out.println("我是原函数");
    }
}

重载类

public class New extends Old{
    @Override
    public void write(){
        System.out.println("我是重写函数");
    }
}

运行结果

我是重写函数
我是第 1 个方法
我是第 2 个方法

分析

对于重写而言,编译时编译器检查Old类中有一个write函数,编译通过。运行时new了一个新New对象,赋给method,虚拟机知道是调用New中的write方法,即在运行时才知道调用哪个方法
对于重载而言编译时根据不同的实参来调用函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值