
Abstract class trong Java tương tự như interface ngoại trừ việc nó có thể chứa thực thi phương thức mặc định. Một Abstract class có thể có một phương thức trừu tượng 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 một lớp và phương thức trừu tượng. Không thể khởi tạo Abstract class trong java. Một Abstract class chủ yếu được sử dụng để cung cấp cơ sở 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 Abstract class.
Abstract class trong Java
Đây là một ví dụ đơn giản về một Abstract class trong Java.
package com.journaldev.design;
//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;
}
}
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 Abstract class trong java.
package com.journaldev.design;
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());
}
}
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ũng lưu ý việc sử dụng chú thích Override trong lớp Nhân viên. Đọc thêm để biết lý do tại sao chúng ta nên luôn sử dụng chú thích Override khi ghi đè một phương thức.
Các điểm quan trọng của Abstract class trong Java
ü Từ khóa abstract được sử dụng để tạo một Abstract class trong java.ü Không thể khởi tạo Abstract class trong java.
ü Chúng ta có thể sử dụng từ khóa abstract để tạo một phương thức trừu tượng, một phương thức trừu tượng không có phần thân.
ü Nếu một lớp có các phương thức trừu tượng, thì lớp đó cũng phải là lớp trừu tượng bằng cách sử dụng từ khóa abstract, nếu không nó sẽ không biên dịch.
ü Không nhất thiết đối với một Abstract class phải có phương thức trừu tượng. Chúng ta có thể đánh dấu một lớp là trừu tượng ngay cả khi nó không khai báo bất kỳ phương thức trừu tượng nào.
ü Nếu Abstract class không có bất kỳ triển khai phương thức nào, tốt hơn nên sử dụng interface vì java không hỗ trợ đa kế thừa.
ü Lớp con của Abstract class trong java phải triển khai tất cả các phương thức trừu tượng trừ khi lớp con cũng là một Abstract class.
ü 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, để biết thêm chi tiết, hãy đọc các thay đổi giao diện Java 8 .
ü Abstract class trong Java có thể triển khai các interface mà không cần cung cấp việc triển khai các phương thức interface.
ü Abstract class 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 Abstract class 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 Abstract class trong Java.
0 Nhận xét