^Back To Top

foto1 foto2 foto3 foto4 foto5


Get Adobe Flash player

Đối với sinh viên chuyên ngành Công nghệ thông tin môn học lập trình Java là môn học làm tiền đề để học các môn học tiếp theo, vì vậy cần nắm chắc các kiến thức về cấu trúc cũng như cách sử dụng. Tính kế thừa là một trong những nội dung tương đối khó, và thường xuyên được sử dụng trong các bài toán quản lý lớp và đối tượng.

1. Khái niệm kế thừa trong Java

Kế thừa trong Java là sự liên quan giữa hai class với nhau, trong đó có class cha (superclass) và class con (subclass). Khi kế thừa class con được hưởng tất cả các phương thức và thuộc tính của class cha. Tuy nhiên, nó chỉ được truy cập các thành viên public và protected của class cha. Nó không được phép truy cập đến thành viên private của class cha.

Tư tưởng của kế thừa trong java là có thể tạo ra một class mới được xây dựng trên các lớp đang tồn tại. Khi kế thừa từ một lớp đang tồn tại bạn có sử dụng lại các phương thức và thuộc tính của lớp cha, đồng thời có thể khai báo thêm các phương thức và thuộc tính khác.

2. Cú pháp của kế thừa trong Java

Sử dụng từ khóa extends để kế thừa.

Cấu trúc kế thừa:

class Subclass-name extends Superclass-name { 

   //methods and fields

Ví dụ về kế thừa

class Employee {

    float salary = 1000;

}

 class Programmer extends Employee {

    int bonus = 150;

}

 public class InheritanceSample1 {

    public static void main(String args[]) {

        Programmer p = new Programmer();

        System.out.println("Programmer salary is: " + p.salary);

        System.out.println("Bonus of Programmer is: " + p.bonus);

    }

}

Kết quả:

Programmer salary is: 1000.0

Bonus of Programmer is: 150

3. Các kiểu kế thừa trong java

Có 3 kiểu kế thừa trong Java đó là đơn kế thừa, kế thừa nhiều cấp, kế thừa thứ bậc.

Khi một class được kế thừa từ nhiều class đươc gọi là đa kế thừa. Trong java, đa kế thừa chỉ được support thông qua interface.

t12 h1

Lưu ý: Để giảm thiểu sự phức tạp và đơn giản hóa ngôn ngữ, đa kế thừa không được support trong Java.

Ví dụ:  Có 3 lớp A, B, C. Trong đó lớp C kế thừa từ các lớp A và B. Nếu các lớp A và B có phương thức giống nhau và bạn gọi nó từ đối tượng của lớp con, như vậy khó có thể xác đinh được việc gọi phương thức của lớp A hay B.

Vì vậy lỗi khi biên dịch sẽ tốt hơn lỗi khi runtime, Java sẽ print ra lỗi "compile time error" nếu bạn cố tình kế thừa 2 class.

Theo nguồn https://viettuts.vn