NỘI DUNG BÀI VIẾT
Lớp trừu tượng (abstract) trong Java tương tự như Interface ngoại trừ việc nó có thể chứa phương thức thực thi mặc định. Một class abstract có thể có một phương thức abstract mà không có phần thân và nó cũng có thể có các phương thức có thực thi.
Từ khóa abstract được sử dụng để tạo class abstract và phương thức abstract. Không thể khởi tạo lớp trừu tượng trong java. Một lớp trừu tượng chủ yếu được sử dụng để cung cấp base cho các lớp con để mở rộng và triển khai các phương thức trừu tượng và ghi đè hoặc sử dụng các phương thức được triển khai trong lớp trừu tượng.
Abstract class trong Java
Đây là một ví dụ đơn giản về một lớp trừu tượng trong Java.
//abstract class
public abstract class Person {
private String name;
private String gender;
public Person(String nm, String gen){
this.name=nm;
this.gender=gen;
}
//abstract method
public abstract void work();
@Override
public String toString(){
return "Name="+this.name+"::Gender="+this.gender;
}
public void changeName(String newName) {
this.name = newName;
}
}
Code language: JavaScript (javascript)
Lưu ý rằng work() là một phương thức trừu tượng và nó không có phần thân. Đây là một ví dụ về lớp cụ thể mở rộng một lớp trừu tượng trong java.
public class Employee extends Person {
private int empId;
public Employee(String nm, String gen, int id) {
super(nm, gen);
this.empId=id;
}
@Override
public void work() {
if(empId == 0){
System.out.println("Not working");
}else{
System.out.println("Working as employee!!");
}
}
public static void main(String args[]){
//coding in terms of abstract classes
Person student = new Employee("Dove","Female",0);
Person employee = new Employee("Pankaj","Male",123);
student.work();
employee.work();
//using method implemented in abstract class - inheritance
employee.changeName("Pankaj Kumar");
System.out.println(employee.toString());
}
}
Code language: JavaScript (javascript)
Lưu ý rằng lớp con Employee kế thừa các thuộc tính và phương thức của lớp cha Person sử dụng tính năng kế thừa trong java.
Các điểm quan trọng bạn cần nhớ
- Từ khóa abstract được sử dụng để tạo một lớp trừu trượng trong Java.
- Không thể khởi tạo lớp trừu tượng trong Java.
- Chúng ta có thể sử dụng từ khóa abstract để tạo một phương thức abstract, một phương thức abstract không có body.
- Nếu một class có các phương thức abstract, thì class đó cũng phải abstract bằng cách sử dụng từ khóa abstract, nếu không nó sẽ không biên dịch.
- Class abstract không cần thiết phải có phương thức abstract. Chúng ta có thể đánh dấu một lớp là abstract ngay cả khi nó không khai báo bất kỳ phương thức abstract nào.
- Nếu Class abstract không có bất kỳ triển khai phương thức nào, thì tốt hơn nên sử dụng interface vì java không hỗ trợ kế thừa nhiều lớp.
- Class con của Class abstract trong java phải implement tất cả các phương thức abstract trừ khi lớp con cũng là một lớp abstract.
- Tất cả các phương thức trong một interface là trừu tượng hoàn toàn trừ khi các phương thức interface là static hoặc default. Phương thức static và phương thức default trong interface được thêm vào trong Java 8.
- Lớp trừu tượng trong Java có thể implement các interface mà không cần cung cấp việc triển khai các phương thức interface.
- Lớp trừu tượng trong Java được sử dụng để cung cấp triển khai phương thức chung cho tất cả các lớp con hoặc cung cấp triển khai mặc định.
- Chúng ta có thể chạy lớp trừu tượng trong java giống như bất kỳ lớp nào khác nếu nó có phương thức main ().
Đó là tất cả đối với một lớp trừu tượng trong Java. Nếu tôi bỏ lỡ bất cứ điều gì quan trọng, xin vui lòng cho tôi biết thông qua các bình luận.
Happy learning!!!