27 July 2016

Nạp chồng phương thức Overloading - (Method Overloading in Java)

Nạp chồng khác kiểu tham số - khác size tham số
Java 2016
package Demo27;

class Test {
 void sum(double a, double b) {
  System.out.println(a+b);
 }

 void sum(int a, int b, int c) {
  System.out.println(a+b+c);
 }

 public static void main(String args[]) {
  Test obj = new Test();
  obj.sum(20, 20);
  obj.sum(20, 20, 20);
 }
}
Output:
40.0
60
Sơ đồ hoạt động của Nạp Chồng
Dành cho VD bên dưới


Nạp chồng khác kiểu tham số - Cùng size tham số
Java 2016
package Demo27;

class Test {
 void sum(int a, int b) {
  System.out.println(a + b + " method 1");
 }

 void sum(double a, double b) {
  System.out.println(a + b + " method 2");
 }

 public static void main(String args[]) {
  Test obj = new Test();
  obj.sum(20, 20);
 }
}
Output:  40 method 1
Ưu tiên kiểu int hiển thị -> đã rõ sơ đồ
Java 2016
package Demo27;

class Test {
 void sum(double a, double b) {
  System.out.println(a + b + " method 1");
 }

 void sum(int a, int b) {
  System.out.println(a + b + " method 2");
 }

 public static void main(String args[]) {
  Test obj = new Test();
  obj.sum(20, 20);
 }
}
Note: như chúng ta đã biết trình biên dịch sẽ chạy từ trên xuống
dưới. Khi chạy đến method sum(double,double) nó hiển thị nhưng 
khi chạy đến method sum(int,int) thì nó sẽ so sánh với 
method trên vừa đi qua và ưu tiên hiển thị kiểu int. 
Output:  40 method 2
-----Error-----
Java 2016
package Demo27;

class Test {
 void sum(int a, double b) {
  System.out.println(a + b + " method 1");
 }

 void sum(double a, int b) {
  System.out.println(a + b + " method 2");
 }

 public static void main(String args[]) {
  Test obj = new Test();
  obj.sum(20, 20); //error!
 }
}
Output:  Lỗi error!

0 nhận xét:

Post a Comment

 

BACK TO TOP

Xuống cuối trang