Java 43. Nạp chồng phương thức - Overloading trong Java



    Bản quyền thuộc về TITV.vn, 
    vui lòng không đăng tải lại nội dung từ trang này.

    Video giải thích chi tiết


     Khái niệm về Overloading 

    Overloading là việc tạo ra nhiều phương thức trong một lớp có chung tên nhưng khác tham số truyền vào


    Lý do: tăng tính sử dụng cho các phương thức bên trong một lớp.


    So sánh:


    #

    Nạp chồng phương thức (overloading)

    Ghi đè phương thức (overriding)

    1)

    Nạp chồng phương thức được sử dụng để giúp code của chương trình dễ đọc hơn.

    Ghi đè phương thức được sử dụng để cung cấp cài đặt cụ thể cho phương thức được khai báo ở lớp cha.

    2)

    Nạp chồng được thực hiện bên trong một class.

    Ghi đè phương thức xảy ra trong 2 class có quan hệ kế thừa.

    3)

    Nạp chồng phương thức thì tham số phải khác nhau.

    Ghi đè phương thức thì tham số phải giống nhau.

    4)

    Nạp chồng phương thức là ví dụ về đa hình lúc biên dịch.

    Ghi đè phương thức là ví dụ về đa hình lúc runtime.

    5)

    Trong java, nạp chồng phương thức không thể được thực hiện khi chỉ thay đổi kiểu giá trị trả về của phương thức. Kiểu giá trị trả về có thể giống hoặc khác. Giá trị trả về có thể giống hoặc khác, nhưng tham số phải khác nhau.

    Giá trị trả về phải giống nhau.



     Ví dụ 


    public class MyMath { public int timMin(int a, int b) { if(a<b) { return a; }else { return b; } } // public double timMin(int a, int b) { // if(a<b) { // return a; // }else { // return b; // } // } public double timMin(double a, double b) { if(a<b) { return a; }else { return b; } } public double tinhTong(double a, double b) { return a+b; } public double tinhTong(double[] arr) { double tong = 0; for (int i = 0; i < arr.length; i++) { tong+=arr[i]; } return tong; } }

    
    public class Test {
    	public static void main(String[] args) {
    		MyMath mm = new MyMath();
    		System.out.println("min(5,5) = "+ mm.timMin(5, 5));
    		System.out.println("min(5.5, 6.0) = "+ mm.timMin(5.5, 6.0));
    		System.out.println("tinhTong(5,6)= "+mm.tinhTong(5.0, 6.0));
    		double arr[] = new double[] {1,2,3,4,5};
    		System.out.println("tinhTong(arr)= "+mm.tinhTong(arr));
    	}
    }
    
    
    
         

    Bạn có thể thích những bài đăng này:

    1 nhận xét: