java方法的重载

2018-02-05  本文已影响0人  0843d07b95d5

本文为学习笔记 能力有限 如有错误望指正。谢谢!!!

重载:在一个类中允许有方法名相同,但是参数不同的方法;(这里“参数不同”指:参数的个数或者类型不同)。

举例:

public class Test {

    void  max( int a , int b ) {

        System.out.println( a > b ? a : b );

    }

    void max( short a, short b) {

        System.out.println("short");

        System.out.println( a > b ? a ; b);

    }

    void max( float a , float b) {

        System.out.println( a > b ? a : b);

    }

    public static void main(String[] args) {

        Test t =new Test();

        t.max(3,4);

        short a = 3;

        short b = 4;

        t.max( a, b);

    }

}

在这个例子中定义了一个Test 类,在这个类中包含了三个名字相同的但是参数类型不同的函数max.之后在main函数里面调用了两次。前者调用的是第一个max函数,为什么不调用第二个max函数呢?因为在java中编译器会将常量3 4 看作int类型所以匹配到第一个max 函数;后者max中的参数a b 被定义为short类型所以编译器匹配到第二个max函数。重另一种角度理解其实函数的重载就是编译器匹配恰好合适的函数调用。这里说的恰好合适是指:函数名相同,参数个数类型相同。构造方法的重载与之类似。

上一篇 下一篇

猜你喜欢

热点阅读