Tóm tắt Java
Các lớp và phương thức trừu tượng
Trừu tượng hóa dữ liệu là quá trình ẩn một số chi tiết nhất định và chỉ hiển thị thông tin cần thiết cho người dùng.
Tính trừu tượng có thể đạt được bằng các lớp hoặc
giao diện trừu tượng (bạn sẽ tìm hiểu thêm trong chương sau).
Từ abstract
khóa là một công cụ sửa đổi không truy cập, được sử dụng cho các lớp và phương thức:
- Lớp trừu tượng: là lớp bị hạn chế, không thể dùng để tạo đối tượng (để truy cập được thì phải kế thừa từ lớp khác).
- Phương thức trừu tượng: chỉ có thể được sử dụng trong một lớp trừu tượng và nó không có phần thân. Phần thân được cung cấp bởi lớp con (kế thừa từ).
Một lớp trừu tượng có thể có cả phương thức trừu tượng và phương thức thông thường:
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
Từ ví dụ trên, không thể tạo một đối tượng của lớp Animal:
Animal myObj = new Animal(); // will generate an error
Để truy cập lớp trừu tượng, nó phải được kế thừa từ lớp khác. Hãy chuyển đổi lớp Động vật mà chúng ta đã sử dụng trong chương Đa hình thành một lớp trừu tượng:
Hãy nhớ từ chương Kế thừa rằng chúng ta sử dụng extends
từ khóa để kế thừa từ một lớp.
Thí dụ
// Abstract class
abstract class Animal {
// Abstract method (does not have a body)
public abstract void animalSound();
// Regular method
public void sleep() {
System.out.println("Zzz");
}
}
// Subclass (inherit from Animal)
class Pig extends Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Tại sao và khi nào sử dụng các lớp và phương thức trừu tượng?
Để đạt được tính bảo mật - hãy ẩn các chi tiết nhất định và chỉ hiển thị các chi tiết quan trọng của một đối tượng.
Lưu ý: Tính trừu tượng cũng có thể đạt được với Giao diện mà bạn sẽ tìm hiểu thêm trong chương sau.