Từ khóa super được sử dụng để truy cập các phương thức, thuộc tính và hàm tạo từ một lớp cha trong một lớp con. Trên Career Karma, hãy tìm hiểu cách sử dụng từ khóa Java super trong mã của bạn.

Bạn đang xem : lớp cha trong java là gì

Java Super: Hướng dẫn

Kế thừa là một tính năng cốt lõi trong lập trình hướng đối tượng cho phép nhà phát triển xác định một lớp mới từ một lớp hiện có. Ví dụ: hạng để lưu trữ các nhà cung cấp thịt tại cửa hàng thực phẩm tốt cho sức khỏe địa phương có thể được xác định dựa trên hạng để lưu trữ bất kỳ sản phẩm nào được bán tại cửa hàng.

Khi bạn đang làm việc với kế thừa trong Java, bạn có thể sẽ gặp phải từ khóa super. Từ khóa super được sử dụng để truy cập các thành viên lớp cha bên trong lớp con và có nhiều cách sử dụng khi kế thừa các thành viên lớp cha.

Hướng dẫn này sẽ thảo luận, với các tài liệu tham khảo và ví dụ, những kiến ​​thức cơ bản về từ khóa Java super và cách bạn có thể sử dụng nó trong mã của mình. Khi đọc xong hướng dẫn này, bạn sẽ thành thạo trong việc sử dụng từ khóa super trong Java.

Kế thừa Java

Trong Java, kế thừa được sử dụng để định nghĩa một lớp mới từ một lớp hiện có. Tính kế thừa là một tính năng hữu ích vì nó cho phép người lập trình giảm số lượng mã phải lặp lại vì họ có thể sử dụng mã hiện có để tạo các lớp mới.

Kế thừa được sử dụng khi có mối quan hệ is-a giữa hai lớp. Dưới đây là một số ví dụ về loại mối quan hệ này:

  • Thịt là thực phẩm
  • iPhone là điện thoại
  • Đèn là một món đồ nội thất
  • Lốp là một bộ phận của ô tô

Bằng cách kế thừa mã từ một phương thức khác, bạn có thể truy cập các thuộc tính, hàm tạo và phương thức được lưu trữ trong hàm đó và sử dụng chúng trong phương thức mới của bạn. Dưới đây là một ví dụ về kế thừa được sử dụng để kế thừa mã được lưu trữ trong phương thức BankAccount để sử dụng trong một phương thức mới có tên SavingsAccount:

 class BankAccount {
// Phương thức, thuộc tính, hàm tạo
}

class SavingsAccount mở rộng BankAccount {
// Phương thức, thuộc tính, hàm tạo
} 

Trong ví dụ này, chúng tôi sử dụng từ khóa expand để kế thừa tất cả các phương thức, thuộc tính và hàm tạo từ phương thức BankAccount và áp dụng chúng cho phương thức SavingsAccount mới. Nếu bạn muốn tìm hiểu thêm về kế thừa Java, bạn có thể đọc hướng dẫn đầy đủ của chúng tôi về chủ đề này tại đây .

Java Super

Từ khóa super được sử dụng để truy cập các thành viên của lớp cha trong một lớp con. Các thành viên của lớp siêu cấp là những người xây dựng, thuộc tính và phương pháp.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một buổi đào tạo. Hãy so khớp với bootcamp ngay hôm nay.

Xem Thêm  Cách tạo Menu thả xuống HTML [+ Ví dụ] - menu thả xuống html

Sinh viên tốt nghiệp bootcamp trung bình đã trải qua chưa đầy sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu học bootcamp đến khi tìm được công việc đầu tiên của họ.

Trong Java, lớp cha, còn được gọi là lớp cha , là lớp mà từ đó lớp con (hoặc lớp con) kế thừa các hàm tạo, phương thức và thuộc tính của nó. Ví dụ: trong ví dụ trên, BankAccount là lớp cha mà từ đó lớp con SavingsAccount của chúng ta kế thừa các giá trị của nó.

Từ khóa super được sử dụng trong ba trường hợp mà chúng ta sẽ khám phá bên dưới.

Sử dụng Super để truy cập các thuộc tính Superclass

Trong Java, các thuộc tính trong lớp cha và lớp con có thể có cùng tên. Nếu bạn muốn truy cập rõ ràng vào nội dung của thuộc tính lớp chồng, bạn phải sử dụng từ khóa super.

Dưới đây là một ví dụ về super được sử dụng có tham chiếu đến ví dụ về tài khoản ngân hàng của chúng tôi ở trên để truy cập thuộc tính class:

 class BankAccount {
được bảo vệ String accountType = "Tài khoản Ngân hàng";
}

class SavingsAccount mở rộng BankAccount {
public String accountType = "Tiết kiệm Tài khoản";

public void printAccountDetails () {
System.out.println ("Loại tài khoản:" + accountType);
System.out.println ("Loại tài khoản mẹ:" + super.accountType);
}
}

lớp chính {
public static void main (String [] args) {
SavingsAccount johnSavings = new SavingsAccount ();
johnSavings.printAccountDetails ();
}
} 

Mã của chúng tôi trả về:

 Loại tài khoản: Tài khoản Tiết kiệm
Loại tài khoản chính: Tài khoản Ngân hàng 

Trong ví dụ của chúng tôi, chúng tôi đã khai báo một lớp cha gọi là BankAccount có một thuộc tính: accountType. accountType tương đương với Tài khoản Ngân hàng trong lớp này.

Chúng tôi cũng đã xác định một lớp con được gọi là SavingsAccount kế thừa các giá trị của nó từ BankAccount. Trong lớp con này, chúng tôi khai báo một biến có tên accountType lưu trữ loại tài khoản do lớp đó nắm giữ, trong trường hợp này là Tài khoản tiết kiệm .

Tìm Bootcamp Match của bạn

  • Career Karma phù hợp với bạn với những chiến lợi phẩm công nghệ hàng đầu
  • Nhận học bổng độc quyền và các khóa học chuẩn bị

Sau đó, chúng tôi tạo một phương thức có tên là printAccountDetails () , khi được gọi, sẽ in ra loại tài khoản của SavingsAccount, trước nhãn là Loại tài khoản: . Chúng tôi sử dụng biến accountType để in ra loại tài khoản SavingsAccount vì biến accountType có phạm vi cục bộ.

Sau khi in xong, Loại tài khoản chính: sẽ được in ra bảng điều khiển, tiếp theo là accountType của lớp BankAccount. Chúng tôi sử dụng super.accountType để tham chiếu giá trị của accountType được lưu trữ trong hàm tạo mặc định của lớp cha.

Trong chương trình chính của chúng tôi, trước tiên chúng tôi tạo một đối tượng của phương thức SavingsAccount được gọi là johnAccount để lưu trữ thông tin chi tiết về tài khoản của anh ấy. Sau đó, chúng tôi gọi phương thức có tên printAccountDetails () để truy xuất thông tin về tài khoản của John.

Sử dụng Super để truy cập phương pháp Superclass

Các phương thức trong lớp con và lớp cha có thể có cùng tên. Nếu bạn muốn truy cập phương thức được lưu trữ trong lớp cha trùng tên với phương thức của lớp con, bạn phải sử dụng từ khóa super.

Xem Thêm  Cách tạo Công tắc chuyển đổi tùy chỉnh bằng CSS - nút chuyển đổi tùy chỉnh css

Dưới đây là một ví dụ về việc cấp siêu được sử dụng để truy cập phương thức lớp chồng, sử dụng ví dụ về chương trình lưu trữ thông tin tài khoản ngân hàng:

 class BankAccount {
public void displayAccountType () {
System.out.println ("Loại tài khoản: Tài khoản Ngân hàng");
}
}

class SavingsAccount mở rộng BankAccount {
@Ghi đè
public void displayAccountType () {
System.out.println ("Loại tài khoản: Tài khoản Tiết kiệm");
}

public void displayParentAccountType () {
super.displayAccountType ();
}
}

lớp chính {
public static void main (String [] args) {
SavingsAccount johnSavings = new SavingsAccount ();
johnSavings.displayAccountType ();
johnSavings.displayParentAccountType ();
}
} 

Mã của chúng tôi trả về:

 Loại tài khoản: Tài khoản Tiết kiệm
Loại tài khoản: Tài khoản Ngân hàng 

Trong ví dụ này, chúng tôi đã khai báo một lớp cha gọi là BankAccount có một phương thức: displayAccountType () . Khi phương thức này được gọi, Loại tài khoản: Tài khoản ngân hàng sẽ được in ra bảng điều khiển.

Chúng tôi cũng đã khai báo một lớp con được gọi là SavingsAccount có hai phương thức: displayAccountType () displayParentAccountType () .

Khi displayAccountType () được thực thi, Loại tài khoản: Tài khoản Tiết kiệm được in ra bảng điều khiển. Khi displayParentAccountType () được thực thi, chúng tôi sử dụng từ khóa super để gọi phương thức displayAccountType () từ lớp cha của chúng tôi. Vì vậy, thay vì thực thi phương thức displayAccountType () trong lớp SavingsAccount, chương trình của chúng tôi thực thi phương thức displayAccountType () trong lớp BankAccount.

Trong chương trình chính của chúng tôi, trước tiên chúng tôi khai báo một phiên bản của SavingsAccount được gọi là johnSavings. Sau đó, chúng tôi gọi phương thức displayAccountType () , phương thức này chạy displayAccountType () từ phương thức SavingsAccount. Cuối cùng, chúng tôi gọi displayParentAccountType () thực thi super.displayAccountType () và in Loại tài khoản: Bank Account vào bảng điều khiển.

Sử dụng Super để truy cập hàm tạo siêu lớp

Từ khóa super cũng được sử dụng để truy cập một phương thức khởi tạo từ một lớp cha có cùng tên với một phương thức khởi tạo trong một lớp con. Bạn có thể tìm hiểu thêm về các hàm tạo Java trong hướng dẫn về hàm tạo Java của chúng tôi tại đây .

“Sự nghiệp Karma bước vào đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi đạt được chiến thắng trong chiến dịch. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với giá trị và mục tiêu của tôi trong cuộc sống!”

Venus, Kỹ sư phần mềm tại Rockbot

Để gọi một phương thức khởi tạo lớp cha từ một phương thức khởi tạo lớp con, chúng ta cần sử dụng super () bên trong phương thức khởi tạo lớp con. Super () phải là câu lệnh đầu tiên trong hàm tạo đối số.

Dưới đây là một ví dụ về super () được sử dụng để gọi một hàm tạo siêu lớp, sử dụng ứng dụng ví dụ về tài khoản ngân hàng của chúng tôi:

 class BankAccount {
Tài khoản ngân hàng() {
System.out.println ("Loại tài khoản mẹ: Tài khoản Ngân hàng");
}
}

class SavingsAccount mở rộng BankAccount {
Tài khoản tiết kiệm() {
siêu();
System.out.println ("Loại tài khoản chính: Tài khoản Tiết kiệm");
}
}

lớp chính {
public static void main (String [] args) {
SavingsAccount johnAccount = new SavingsAccount ();
}
} 

Mã của chúng tôi trả về:

 Loại tài khoản chính: Tài khoản Ngân hàng
Loại tài khoản chính: Tài khoản Tiết kiệm 

Trong ví dụ này, chúng tôi đã xác định một lớp cha gọi là BankAccount bao gồm một phương thức khởi tạo. Hàm tạo này, khi được gọi, in Loại tài khoản chính: Tài khoản Ngân hàng vào bảng điều khiển.

Xem Thêm  Cách sử dụng và các ví dụ khác nhau của SQL MAX () - sql chọn giá trị tối đa

Chúng tôi cũng đã xác định một lớp con được gọi là SavingsAccount bao gồm một phương thức khởi tạo. Hàm tạo này, khi được gọi, sử dụng super () để gọi hàm tạo BankAccount trong lớp BankAccount. Thao tác này sẽ in Loại tài khoản chính: Tài khoản Ngân hàng vào bảng điều khiển. Sau đó, hàm tạo SavingsAccount in Loại tài khoản chính: Tài khoản tiết kiệm vào bảng điều khiển.

Trong chương trình chính của chúng tôi, chúng tôi khởi tạo một phiên bản của đối tượng SavingsAccount được gọi là johnAccount. Khi chúng tôi khởi tạo johnAccount, hàm tạo SavingsAccount () sẽ được thực thi.

Kết luận

Từ khóa siêu Java có ba cách sử dụng. Đây là để:

  • Truy cập các thuộc tính của lớp cha
  • Truy cập các phương thức của lớp cha
  • Truy cập các hàm tạo của lớp cha

Hướng dẫn này đã thảo luận, có tham chiếu đến các ví dụ, cách sử dụng từ khóa siêu lớp Java cho các mục đích đó. Bây giờ, sau khi đọc hướng dẫn này, bạn đã sẵn sàng bắt đầu sử dụng từ khóa Java super như một chuyên gia!

1 đánh giá


Xem thêm những thông tin liên quan đến chủ đề superclass trong java là gì

Inheritance Part 1: Super and Sub Classes (Java)

  • Tác giả: Nathan Schutz
  • Ngày đăng: 2017-02-05
  • Đánh giá: 4 ⭐ ( 9191 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: The video defines inheritance in Java. It also lays out what a superclass and subclass is. It shows how inheritance creates an “is-a” relationship.

One moment, please…

  • Tác giả: techacademy.edu.vn
  • Đánh giá: 4 ⭐ ( 7889 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Định nghĩa cho thuật ngữ: Superclass

  • Tác giả: www.greelane.com
  • Đánh giá: 5 ⭐ ( 8576 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Lớp cha là một lớp đã được mở rộng bởi một lớp khác.

[Tự học Java] Tính kế thừa(Inheritance) trong Java

  • Tác giả: cafedev.vn
  • Đánh giá: 3 ⭐ ( 3027 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài hướng dẫn này, chúng ta sẽ tìm hiểu về tính kế thừa trong Java bằng vài ví dụ trợ giúp.

Tìm hiểu các câu hỏi phỏng vấn Java cốt lõi cho vị trí lập trình Java

  • Tác giả: vn.bitdegree.org
  • Đánh giá: 5 ⭐ ( 9658 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bạn đang tìm hiểu về lập trình Java? Tm hiểu các câu hỏi phỏng vấn Java với hướng dẫn ”Các câu hỏi phỏng vấn Java” này để có được vị trí mong muốn

Tính kế thừa trong Java

  • Tác giả: laptrinhtudau.com
  • Đánh giá: 5 ⭐ ( 8422 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tính kế thừa trong Java – Lập Trình Từ Đầu 7 Tính Chất Của JAVA OOPs

One moment, please…

  • Tác giả: quachquynh.com
  • Đánh giá: 5 ⭐ ( 4378 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php