Khám phá sự kế thừa trong ngôn ngữ lập trình Java

Khám phá sự kế thừa trong ngôn ngữ lập trình Java

Kế thừa là một trong những khái niệm cốt lõi của lập trình hướng đối tượng. Trong lập trình, kế thừa từ biểu thị một mối quan hệ trong đó một lớp con giả định trạng thái và hành vi của một lớp cha.





Mục đích của sự kế thừa trong phát triển phần mềm là tạo điều kiện cho việc sử dụng lại phần mềm an toàn và đáng tin cậy. Một trong những lợi ích chính của việc sử dụng kế thừa là nó loại bỏ mã thừa trong các chương trình của bạn.





tại sao hbo max cứ gặp sự cố

Cách hoạt động của Thừa kế

Ý tưởng đằng sau kế thừa là nhiều lớp hoặc đối tượng có một số thuộc tính và phương thức giống nhau. Do đó, trên tinh thần tạo ra phần mềm đáng tin cậy, các lớp mới hiện có thể rút ra từ các lớp liên quan đã có từ trước và nếu cần được mở rộng trên các trạng thái và hành vi hiện có.





Một ví dụ thực tế về cách hoạt động của kế thừa là xem xét các loại trái cây. Đây là một nhãn rộng dùng để đóng gói một loạt các mục khác nhau.

Quả táo là một loại trái cây và quả cam cũng vậy. Tuy nhiên, một quả cam không phải là một quả táo, vì vậy bạn sẽ không thể có hoa quả làm một trong những mặt hàng tồn kho của mình nếu bạn sở hữu một cửa hàng. Có lẽ bạn có thể có một phần trái cây trong hành trang của mình và trong phần đó, bạn sẽ có các mặt hàng cụ thể hơn như táo và cam.



Đó là cách hoạt động của kế thừa.

Sử dụng kế thừa trong Java

Kế thừa có thể được sử dụng trong bất kỳ ngôn ngữ lập trình nào sử dụng mô hình lập trình hướng đối tượng. Tuy nhiên, cách chính xác mà sự kế thừa được sử dụng phụ thuộc vào ngôn ngữ lập trình cụ thể.





Ví dụ, C ++ cũng là một ngôn ngữ lập trình hướng đối tượng . C ++ hỗ trợ những gì được gọi là đa kế thừa, trong khi Java chỉ hỗ trợ kế thừa đơn.

Điều này có nghĩa là trong Java một lớp cha có thể có nhiều lớp con, nhưng mỗi lớp con chỉ có thể có một lớp cha duy nhất (kế thừa đơn). Tuy nhiên, có một cách để đạt được đa kế thừa gián tiếp trong Java, bằng cách tạo mối quan hệ ông bà, cha mẹ và con.





Tạo lớp cha trong Java

Quá trình chọn một lớp cha từ một tài liệu yêu cầu phần mềm được gọi là phân tích hướng đối tượng. Trong quá trình này, cụm từ là a thường được sử dụng để xác định các mối quan hệ thừa kế có thể có. Từ ví dụ của chúng tôi ở trên, bạn sẽ có thể thấy rằng trái cây sẽ là lớp cha của chúng ta.

Ví dụ về lớp cha mẹ trái cây


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

Một trong những khía cạnh đáng chú ý nhất của lớp cha ở trên là phần bổ trợ truy cập được sử dụng với mỗi khai báo biến. Công cụ sửa đổi quyền truy cập được bảo vệ lý tưởng để sử dụng trong các lớp cha vì nó ngăn các lớp không phải con giành quyền truy cập vào các thuộc tính dữ liệu của lớp cha.

Đi sâu hơn trong đoạn mã, bạn sẽ được giới thiệu về các hàm tạo, bộ chuyển đổi và bộ định tuyến là các khối xây dựng chung cho bất kỳ lớp Java nào. Cuối cùng, bạn được giới thiệu về hai phương pháp (nước trái cây và ăn) được tạo ra trong lớp phụ huynh của chương trình của chúng tôi vì chúng phổ biến cho tất cả các loại trái cây — tất cả các loại trái cây đều có thể ăn và ép được.

Tạo các lớp con trong Java

Các lớp con thường được gọi là lớp chuyên biệt hoặc lớp dẫn xuất vì chúng kế thừa trạng thái và hành vi từ lớp cha, và thường tùy chỉnh các thuộc tính này để cụ thể hơn.

Tiếp tục với ví dụ của chúng tôi, bạn sẽ có thể thấy lý do tại sao màu cam sẽ là một lớp con phù hợp của lớp trái cây ở trên.

Ví dụ về lớp học trẻ em màu da cam


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

Có một sự khác biệt giữa khai báo lớp Java thông thường trông như thế nào và những gì chúng ta có trong đoạn mã của chúng ta ở trên. Từ khóa kéo dài là những gì được sử dụng trong Java để làm cho khả năng kế thừa.

Trong ví dụ của chúng tôi ở trên, lớp con (màu cam) mở rộng lớp cha (quả). Do đó, trạng thái và hành vi của lớp quả bây giờ có thể được truy cập và sửa đổi bởi lớp cam.

Thuộc tính duy nhất mà lớp màu cam của chúng ta có được xác định bằng tên biến supremes (là tên chính thức cho các phân đoạn nhỏ được tìm thấy trong quả cam). Đây là lúc chuyên môn hóa phát huy tác dụng; không phải tất cả các loại trái cây đều có supremes nhưng tất cả cam đều có, vì vậy việc dành biến supremes cho loại cam là hợp lý.

Thêm phương pháp gọt vỏ vào các phương pháp ăn uống và nước trái cây có sẵn cũng là hợp lý vì mặc dù không phải tất cả các loại trái cây đều có thể gọt vỏ, nhưng cam thường được gọt vỏ.

Bạn nên nhớ rằng nếu chúng tôi không có ý định thay đổi các phương pháp ăn uống và nước trái cây hiện có, chúng tôi sẽ không cần đưa chúng vào nhóm cam của chúng tôi. Các phương thức trong lớp màu cam sẽ ghi đè lên bất kỳ phương thức nào tương tự trong lớp quả. Vì vậy, nếu tất cả các loại trái cây đều được ăn và ép theo cùng một cách, chúng ta sẽ không cần tạo các phương pháp này trong lớp cam.

Các yếu tố cấu tạo vai trò đóng vai trò kế thừa

Theo mặc định, các hàm tạo lớp cha được kế thừa bởi các lớp con. Do đó, nếu một đối tượng lớp con được tạo ra, điều này có nghĩa là một đối tượng lớp cha cũng được tạo tự động.

Trở lại với ví dụ của chúng ta, mỗi khi một đối tượng màu cam mới được tạo ra thì một đối tượng quả cũng được tạo ra vì quả cam là một quả.

Phía sau, khi một đối tượng lớp con được tạo, phương thức khởi tạo của lớp cha được gọi trước tiên là phương thức khởi tạo của lớp con. Trong lớp con màu cam của chúng ta ở trên, nếu một đối tượng màu cam được tạo mà không có bất kỳ tham số nào thì phương thức khởi tạo lớp quả mặc định của chúng ta sẽ được gọi, theo sau là nhà thầu lớp màu cam mặc định của chúng ta.

Phương thức super trong hàm tạo chính của chúng ta ở trên là cần thiết vì nó chỉ định rằng hàm tạo chính - chứ không phải hàm tạo mặc định - của lớp trái cây mẹ nên được gọi bất cứ khi nào một đối tượng màu cam với các tham số được tạo.

Bây giờ bạn có thể sử dụng tính năng thừa kế trong Java

Từ bài viết này, bạn đã có thể tìm hiểu kế thừa là gì, nó hoạt động như thế nào và tại sao nó lại là một khái niệm quan trọng trong lập trình. Bây giờ bạn có thể tạo các mối quan hệ kế thừa của mình bằng ngôn ngữ lập trình Java. Hơn nữa, bây giờ bạn biết cách vượt qua quy tắc thừa kế đơn của Java bằng cách tạo mối quan hệ ông bà.

Tín dụng hình ảnh: Andreas Wohlfahrt / Pexels

Đăng lại Đăng lại tiếng riu ríu E-mail Cách tổ chức mã hướng đối tượng của bạn với tính kế thừa

Lập trình hướng đối tượng đúng nghĩa là bạn cần biết về kế thừa và cách nó có thể đơn giản hóa việc viết mã và giảm lỗi.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Java
  • Lập trình hướng đối tượng
Giới thiệu về tác giả Kadeisha Kean(21 bài báo đã xuất bản)

Kadeisha Kean là Nhà phát triển Phần mềm Full-Stack và Người viết Kỹ thuật / Công nghệ. Cô ấy có khả năng khác biệt để đơn giản hóa một số khái niệm công nghệ phức tạp nhất; sản xuất vật liệu có thể dễ dàng hiểu được bởi bất kỳ người mới làm quen với công nghệ. Cô ấy đam mê viết lách, phát triển phần mềm thú vị và đi khắp thế giới (thông qua phim tài liệu).

Xem thêm từ Kadeisha Kean

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký