CodeGym /Blog Java /Ngẫu nhiên /Siêu từ khóa trong Java

Siêu từ khóa trong Java

Xuất bản trong nhóm
Từ khóa siêu được sử dụng trong các tình huống khác nhau. Trước khi bắt đầu với bài đăng này, chúng tôi khuyến khích bạn tìm hiểu về tính kế thừa trong Java để hiểu rõ hơn.

Siêu từ khóa trong Java là gì?

Super là một từ khóa có thể được sử dụng để gọi các phương thức bị ghi đè của lớp cha, cũng như để chỉ các trường ẩn của lớp cha.

Tại sao và khi nào nên sử dụng siêu từ khóa?

Siêu từ khóa Java có ba cách sử dụng rõ ràng.
  1. Truy cập các thành viên dữ liệu của lớp cha khi lớp con cũng có các thành viên dữ liệu trùng tên.
  2. Gọi các hàm tạo mặc định hoặc được tham số hóa của lớp cha trong lớp con.
  3. Gọi các phương thức của lớp cha trong lớp con nếu lớp con có các phương thức bị ghi đè.
Hãy để chúng tôi hiểu tất cả ba trường hợp trên bằng cách sử dụng sự trợ giúp của các ví dụ.

Ví dụ 1 - Truy cập các thành viên dữ liệu của cha mẹ

Ví dụ 1 minh họa cách các thuộc tính hoặc thành viên dữ liệu của lớp Vehicle có thể được truy cập trong lớp con Car -type. Hãy chắc chắn rằng bạn chạy đoạn mã dưới đây để hiểu rõ.

class Vehicle {

	String name = "vehicle";
}

class Car extends Vehicle {

	String name = "car";

	public void printMyName() {

		System.out.println(name);
	}

	public void printParentName() {

		// use super keyword to access 
		// parent's data member / attribute
		System.out.println(super.name);
	}

	public static void main(String[] args) {

		Car myCar = new Car();
		System.out.print("My Car's Name: "); 
		myCar.printMyName();
		
		// printing the parent's name 
		// using the super keyword 
		System.out.print("My Parent Vehicle's Name: "); 
		myCar.printParentName();
	}
}
đầu ra
Tên xe của tôi: xe hơi Tên xe của cha mẹ tôi: xe

Ví dụ 2 - Truy cập hàm tạo của lớp cha trong lớp con

Việc gọi super() một cách rõ ràng cho phép bạn truy cập cả hàm tạo mặc định hoặc được tham số hóa của lớp cha trong lớp con. Đây là một ví dụ về hàm tạo được tham số hóa. Hàm tạo của lớp cha tức là Shape được gọi (sử dụng super() ) trong lớp con tức là lớp Triangle để đặt các thuộc tính. Chạy chương trình dưới đây để kiểm tra đầu ra cho chính mình.

public class Shape {

	String name;

	public Shape(String n) {

		System.out.println("Shape() parameterized constructor called!");
		name = n;
	}
}

class Triangle extends Shape {
	
	int sides = 3;
	String color;

	public Triangle(String n, String c) {
		
		// The super keyword calls the parameterized 
		// constructor of the parent (Shape) with 
		// 'n' as a parameter 
		super(n);
		
		System.out.println("Triangle() parameterized constructor called!");
		this.color = c;
	}

	public static void main(String[] args) {

		Triangle myTriangle = new Triangle("Triangle Alpha", "Yellow");
		
		System.out.println(myTriangle.name);
		System.out.println(myTriangle.color);
	}
}
đầu ra
Hàm tạo tham số Shape() được gọi! Hàm tạo tham số Triangle() được gọi! Tam giác Alpha Màu vàng
Thử thách nhanh : Thiết kế lại chương trình trên bằng cách sử dụng hàm tạo mặc định để kiểm tra việc học của bạn. Ngoài ra, hãy xem cách super() khác với super(arg) .

Ví dụ 3 - Truy cập phương thức bị ghi đè của lớp cha trong lớp con

Ví dụ 3 cho thấy cách bạn có thể truy cập các phương thức của lớp cha mà lớp con cũng định nghĩa. Lớp cha Sound trong chương trình bên dưới định nghĩa một phương thức voice() . Lớp con Drum cũng có một phương thức có cùng tên tức là voice() . Nó có nghĩa là giọng nói của phương thức bị ghi đè bởi lớp con. Chạy chương trình bên dưới để tìm hiểu cách từ khóa super cần thiết để sử dụng các phương thức của lớp cha trong lớp con.

public class Sound {

	public void voice() {
		System.out.println("Play sound!");
	}
}

class Drum extends Sound {

	public void voice() {
		System.out.println("Play drums!");
	}

	public void play() {

		// The super keyword calls the 
		// voice() method of the parent 
		super.voice();
		voice();
	}
	
	public static void main(String[] args) {

		Drum myDrum = new Drum();
		myDrum.play();
	}
}
đầu ra
Hàm tạo tham số Shape() được gọi! Hàm tạo tham số Triangle() được gọi! Tam giác Alpha Màu vàng

Phần kết luận

Đến cuối bài này, chúng tôi hy vọng bạn sẽ có thể hiểu được hoạt động của từ khóa super trong Java. Chúng tôi khuyến khích bạn học lập trình bằng cách thực hành. Vì thực hành là chìa khóa cuối cùng để học cách xây dựng logic. Bài đăng này sẽ chào đón bạn bất cứ khi nào bạn gặp khó khăn. Cho đến lúc đó, học tập vui vẻ!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION