Home > Java > javaTutorial > java method overloading example

java method overloading example

高洛峰
Release: 2017-01-19 14:44:53
Original
1993 people have browsed it

What is method overloading?

Method overloading is a means of handling different data types in a unified way.

How to constitute method overloading?

The method names are the same but the formal parameters are different. The difference in formal parameters is expressed in: 1). The number of formal parameters is different 2). The types of formal parameters are different 3). The order of formal parameters is different

Notes

1. If the return values ​​of the two methods are different, but everything else is the same. This does not constitute method overloading. An error will be reported during compilation:

Sample code (wrong): Test.java

/*返回值的不同并不能构成方法的重载*/
public class Test {
    public static void main(String[] args) {

    }   
}
class A { 
    public void f() {               //返回值为 void
    }  
    public int f() {                //返回值为 int, 其他和上面的f()方法是一样的
        return 1;
    }   
}
Copy after login

Error message:

Test.java:12: error: method f() is already defined in class A
      public int f() {
               ^
          1 error

2. 构造方法和普通方法一样, 也可以方法重载。
Copy after login

Sample code (correct): Test.java

/* 方法的重载
 * 输出结果:
 * public A() {} 这个构造方法被调用了
 * public A(int i) {} 这个构造方法被调用了
 * public void f() {} 这个构造方法被调用了
 * public void f(int i) {} 这个构造方法被调用了
 */
public class Test {
    public static void main(String[] args) {
        A aa1 = new A();                //调用9行那个方法
        A aa2 = new A(1);               //调用13行那个方法
        aa1.f();                        //调用17行那个方法
        aa2.f(1);                       //调用21行那个方法
    }   
}

class A { 
    public A() {                    //9行
        System.out.printf("public A() {} 这个构造方法被调用了\n");
    }  
    public A(int i) {               //13行
        System.out.printf("public A(int i) {} 这个构造方法被调用了\n");
    }  
    public void f() {               //17行
        System.out.printf("public void f() {} 这个构造方法被调用了\n");
    }  
    public void f(int i) {          //21行
        System.out.printf("public void f(int i) {} 这个构造方法被调用了\n");
    }   
}
Copy after login

For more articles related to java method overloading examples, please pay attention to the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template