Một trong những nguyên tắc cốt lõi trong lập trình hướng đối tượng không thể thiếu đó chính là kế thừa (Extends). Vậy kế thừa là gì? Cách sử dụng nó ra sao hãy cùng tìm hiểu ngay trong bài viết này.
Kế thừa trong Java là gì?
Kế thừa cho phép chúng ta sử dụng lại mã hiện có hoặc mở rộng một kiểu hiện có. Hay hiểu một cách đơn giản, đó là một lớp Class con (subclass) có thể kế thừa một lớp Class cha (superclass). Nó chỉ được kế thừa khi Class đó sử dụng public, protected. Còn với private thì không.
Lấy ví dụ một hãng sản xuất xe máy cung cấp nhiều mẫu cho khách hàng. Chúng có một đặc điểm chung là có bánh xe, bộ khung, xích… Thay vì thiết kế lại từ đầu thì chúng ta tạo ra một mẫu xe. Sau đó kế thừa từ mẫu đó để tạo ra các xe mới có tính năng bổ sung.
Để kế thừa trong Java thì chúng ta sử dụng từ khóa extends
.
Cách sử dụng kế thừa trong Java
Hãy xem ví dụ sau:
Tạo 1 tập tin là myClass.java
public class myClass { public myClass() { // Construct } int number = 200; }
Tiếp theo tạo file TwoClass.java
public class TwoClass extends myClass { public TwoClass() { // Constructor } public static void main(String[] args) { TwoClass obj = new TwoClass(); System.out.println(obj.number); } }
Các kiểu kế thừa
Có 3 kiểu kế thừa đó là:
- Đơn kế thừa
- Kế thừa nhiều cấp
- Kế thừa thứ bậc
1. Ví dụ đơn kế thừa
Bạn hãy xem ví dụ vừa thực hiện ở trên
2. Ví dụ kế thừa nhiều cấp
Tiếp tục ví dụ ở trên bây giờ bạn sẽ tạo thêm một tập tin là ThreeClass.java
public class ThreeClass extends TwoClass { public ThreeClass() { // constructor } public static void main(String[] args) { TwoClass obj = new TwoClass(); System.out.println(obj.number); } }
Như vậy là lúc đầu class TwoClass sẽ kế thừa myClass. Tiếp đó ThreeClass lại kế thừa TwoClass.
3. Ví dụ về kế thừa thứ bậc
Kế thừa thứ bậc sẽ kế thừa trực tiếp từ class mẫu. Giống nhà sản xuất sẽ ô tô tạo ra nhiều phiên bản của xe ô tô đầu tiên vậy.
Đầu tiên ta có lớp FirstCar
public class firstCar { public myClass() { // Construct } public static void main(String args[]) { System.out.println("This is a First Car"); } }
Tiếp theo twoCar
sẽ kế thừa firstCar
public class twoCar extends firstCar { public twoCar() { // Construct } public static void main(String args[]) { System.out.println("This is a Two Car"); } }
Và tiếp nữa threeCar
cũng kế thừa của firstCar
public class threeCar extends firstCar { public threeCar() { // Construct } public static void main(String args[]) { System.out.println("This is a three Car"); } }
Kết thúc bài học bạn đã nắm được tính kế thừa trong Java chưa? Hiểu đơn giản nhất đó là tạo ra một Class mẫu sau đó sử dụng các Class con để kế thừa lại các đặc điểm của Class cha. Khi hiểu và sử dụng thuần thục bạn sẽ thấy rằng kế thừa nâng cao hiệu suất viết code trong lập trình rất lớn.