Tại sao cần phải có cha java
Chào bạn, khi lập trình Java hướng đối tượng có một từ khóa rất thú vị đó là từ khóa super.
Show
Từ khóa Super trong Java Vậy từ khóa super trong Java có tác dụng gì? Sử dụng thế nào? bla... bla... Hãy cùng mình tìm hiểu trong bài viết này nhé. Nội dung của bài viết này gồm:
1. Từ khóa super trong java là gì?Từ khóa super trong Java là một biến tham chiếu, được sử dụng để tham chiếu trực tiếp đến đối tượng của lớp cha gần nhất. Bất cứ khi nào bạn tạo ra một thể hiện (hay còn gọi là một instance) của lớp con, một instance của lớp cha được tạo ra ngầm định, nghĩa là được tham chiếu bởi biến super. Trước khi chúng ta đi vào các ví dụ và cách sử dụng super, bạn cần có kiến thức về kế thừa ở trong Java để hiểu được các ví dụ nhé. > Bạn có thể tìm hiểu qua bài hướng dẫn Tự học Java này nhé 2. Cách sử dụng từ khóa super trong Java qua các ví dụTrong java, super có 3 cách sử dụng chính:
Sau đây chúng ta cùng tìm hiểu từng trường hợp qua ví dụ cụ thể nhé. 2.1. Ví dụ sử dụng từ khóa super để tham chiếu trực tiếp đến biến instance của lớp cha gần nhấtSau đây mình sẽ tạo ra một lớp cha là Parent, sau đó tạo ra một lớp Child kế thừa (extends) lớp Parent như bên dưới đây: Code: class Parent { public String name = "Biến lớp cha"; public String address = "Hà Nội"; public Parent() {} //Hàm tạo hay Constructor } // Tạo class con kế thừa class Parent class Child extends Parent{ public String name = "Biến lớp con"; public Child() {} //Hàm tạo hay Constructor public void display1() { // Sử dụng từ khóa super System.out.println("Sử dụng super gọi biến name: " + super.name); // Không sử dụng từ khóa super System.out.println("Không sử dụng super: " + name); } public void display2() { System.out.println("Nơi ở: " + address); } } public class SuperInJava { public static void main(String[] args) { Child child = new Child(); child.display1(); child.display2(); } } Khi chạy chương trình, chúng ta nhận được kết quả như sau: Sử dụng super gọi biến name: Biến lớp cha Giải thích: Ở đoạn code trên mình khai
báo 2 class đó là class Trong class child có hai phương thức là Với phương thức Do đó nó sẽ in ra Tương tự mình in ra màn hình chỉ sử dụng Với Do đó mình in ra biến 2.2. Ví dụ sử dụng từ khóa super để gọi phương thức của lớp cha gần nhấtĐể hiểu cách gọi phương thức của lớp cha gần nhất bằng cách sử dụng từ khóa super thì hãy xem ví dụ bên dưới đây: Code: public Parent() {} public void printInfo() { System.out.println("Đây là lớp cha"); } } class Child extends Parent{ public Child() {} public void printInfo() { System.out.println("Đây là lớp con"); } public void displayUseSuper() { // Sử dụng từ khóa super super.printInfo(); } public void displayNotUseSuper() { // Không sử dụng từ khóa super printInfo(); } } public class SuperInJava { public static void main(String[] args) { Child child = new Child(); child.displayUseSuper(); child.displayNotUseSuper(); } } Khi chạy chương trình, chúng ta nhận được kết quả: Đây là lớp cha Ở đây ta thấy hai lớp Trong lớp Tương tự phương thức
Nếu không có, nó sẽ gọi đến phương thức trong lớp cha. Vì thế, chúng ta có kết quả như trên. 2.3. Sử dụng super() để gọi trực tiếp constructor của lớp chaCode: public Parent() { System.out.println("Hàm tạo lớp cha không tham số"); } } class Child extends Parent{ public Child() { // Luôn đặt hàm super() đầu tiên super(); System.out.println("Hàm tạo lớp con"); } } public class SuperInJava { public static void main(String[] args) { Child child = new Child(); } } Khi chạy chương trình trên, chúng ta nhận được kết quả: Hàm tạo lớp cha không tham số Giải thích: Bạn thấy ở trong constructor
của class Việc sử dụng như trên trình biên dịch sẽ hiểu là bạn cần gọi đến contructor của lớp cha. Lưu ý: Phương thức super() luôn phải đặt là câu lệnh đầu tiên. Nhìn vào kết quả, mình tin là bạn sẽ hiểu ngay thôi. Thông qua ba ví dụ về 3 trường hợp cụ thể trên, bây giờ chúng ta hãy cùng thực hành một ví dụ khác nhé. Cùng đoán xem đoạn code dưới đây sẽ chạy ra kết quả như thế nào? int id; String name; Person (int id, String name){ this.id = id; this.name = name; } } class Emp extends Person{ float salary; Emp (int id, String name, float salary){ //gọi lại constructor có 2 tham số là id và name của class cha super(id, name); this.salary = salary; } void display(){ System.out.println(id + " " + name + " " + salary); } } public class SuperInJava { public static void main(String[] args) { Emp e1 = new Emp(1, "ankit", 45000f); e1.display(); } } Bạn hãy thử chạy chương trình trong Eclipse IDE (hoặc IDE nào khác) để xem kết quả như thế nào nhé. 3. Khi nào nên sử dụng từ khóa super trong Java?Qua phần kiến thức và ví dụ mình đã trình bày ở trên, chúng ta có thể rút ra được một số trường hợp nên sử dụng super như sau:
Bạn đã hiểu từ về khóa super trong Java chưa?Như vậy thông qua bài viết này, mình đã trình bày cho các bạn các kiến thức về từ khóa super trong Java rồi. Học Java cũng không quá khó phải không nào? Quan trọng là bạn biết chia nhỏ ra từng phần để học và kiên trì mỗi ngày là sẽ ổn thôi. > Nếu muốn học có sự hướng dẫn của giảng viên doanh nghiệp. Bạn có thể tham gia KHÓA HỌC JAVA (full stack) để tăng tốc độ học tập và đi làm sớm hơn bạn nhé. Hẹn gặp lại bạn trong bài viết tiếp theo. --- HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay! Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội SĐT: 02435574074 - 0383.180086 Email: Website: https://niithanoi.edu.vn Fanpage: https://facebook.com/NIIT.ICT/ #niit #niithanoi #icthanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python |