Interface trong lập trình hướng đối tượng Java | How Kteam

Dẫn nhập

Ở bài trước, chúng ta đã tìm hiểu về TÍNH TRỪU TƯỢNG trong lập trình hướng đối tượng. Hôm nay, Kteam sẽ giới thiệu cho các bạn về interface để biết về đa kế thừa trong Java.

Nội dung

Để đọc hiểu bài này, tốt nhất những bạn nên có kỹ năng và kiến thức cơ bản về những phần sau :

Bài này chúng ta sẽ tìm hiểu những vấn đề sau:

  • Interface là gì? Tại sao phải sử dụng?
  • Khai báo và sử dụng interface

Interface là gì? Tại sao phải sử dụng?

Interface là một kiểu dữ liệu tham chiếu trong Java. Nó là tập hợp các phương thức abstract (trừu tượng). Khi một lớp kế thừa interface, thì nó sẽ kế thừa những phương thức abstract của interface đó.

Một số đặc thù của interface :

  • Không thể khởi tạo, nên không có phương thức khởi tạo.
  • Tất cả các phương thức trong interface luôn ở dạng public abstract mà không cần khai báo.
  • Các thuộc tính trong interface luôn ở dạng public static final mà không cần khai báo, yêu cầu phải có giá trị.

Mục đích của interface là để thay thế sửa chữa đa thừa kế lớp của những ngôn từ khác ( ví dụ như C + +, Python … ). Ngoài ra, interface sẽ giúp đồng nhất và thống nhất trong việc tăng trưởng mạng lưới hệ thống trao đổi thông tin .

Khai báo và sử dụng interface

Cú pháp:

interface {

        // Khai báo các thành phần bên trong interface

}

 Bây giờ ta sẽ tạo ra interface IStudy giành riêng cho class Student, ta vẫn tạo file .java như mọi khi và viết chương trình như sau:

interface IStudy {
	void study();
}

Ta cho class Student kế thừa nó như sau:

public class Student extends Person implements IStudy{

 Nếu dùng Eclipse, bạn sẽ thấy IDE yêu cầu override lại phương thức study() của IStudy ngay:

Interface trong lập trình hướng đối tượng Java

Ta sẽ overriding, thêm đoạn chương trình trong lớp Student như sau:

@Override
public void study() {
	// TODO Auto-generated method stub
	System.out.println(this.name+" is studing");
}

Một class có thể kế thừa nhiều interface, ta sẽ thử tạo thêm interface ISpeak:

interface ISpeak {
	void speak();
}

 Ta thêm interface ISpeak vào class Student bằng cách sau:

public class Student extends Person implements IStudy, ISpeak{

 Hoặc, ta thử thêm ISpeak ở lớp cha Person:

public abstract class Person implements ISpeak{

 Bởi vì class Person là lớp ảo, nên Person không cần override phương thức speak(). Ngoài ra, Student là lớp con Person, nên mặc dù Student không kế thừa ISpeak trực tiếp nhưng vẫn phải override phương thức speak(). Ta sẽ thấy Eclipse yêu cầu khai báo:

Interface trong lập trình hướng đối tượng Java

Ta sẽ hoàn thiện lớp Student như sau:

public class Student extends Person implements IStudy{
	
	public String universityName;

	public Student(String name, int age, float height, String universityName) {
		super(name, age, height);
		this.universityName = universityName;
	}
	

	public void getInfo() {
		super.getInfo();
		System.out.println("University Name:"+this.universityName);
	}


	@Override
	public Object clone() {
		Student other = new Student(this.name, this.getAge(), this.height, this.universityName);
		return other;
	}


	@Override
	public void study() {
		// TODO Auto-generated method stub
		System.out.println(this.name+" is studing");
	}


	@Override
	public void speak() {
		// TODO Auto-generated method stub
		System.out.println(this.name+" is speaking");
	}
}

Kết

Như vậy tất cả chúng ta đã tìm hiểu và khám phá interface trong lập trình hướng đối tượng người tiêu dùng

Ở bài sau, Kteam sẽ giới thiệu đến bạn về  PHƯƠNG THỨC MAIN TRONG JAVA

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

Thảo luận

Nếu bạn có bất kể khó khăn vất vả hay vướng mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI và ĐÁP trên thư viện Howkteam. com để nhận được sự tương hỗ từ hội đồng .