Abstract Class Là Gì – Lớp Abstract Trong Java

*

Abstract Class (Lớp trừu tượng) là gì? Abstract Method (Phương thức trừu tượng) trong là gì? Các ví dụ minh họa trong Java.

Bạn đang xem: Abstract class là gì

Trong bài viết này chúng ta sẽ đi tìm hiểu về Abstract Class và Abstract Method trong Java, cách sử dụng và các ví dụ minh họa.

*

1. Lớp trừu tượng (Abstract Class) trong Java

– Một lớp được khai báo với từ khóaabstractlà lớp trừu tượng (abstract class).

– Lớp trừu tượng có thể có các phương thức abstract hoặc non-abstract.

– Lớp trừu tượng có thể khai báo 0, 1 hoặc nhiều method trừu tượng bên trong.

– Không thể khởi tạo 1 đối tượng trực tiếp từ một lớp trừu tượng.

Xem thêm: Escalation Là Gì ? Đây Là Một Thuật Ngữ Kinh Tế Tài Chính Đây Là Một Thuật Ngữ Kinh Tế Tài Chính

Một lớp kế thừa từ lớp trừu tượng (subclass – lớp con) không cần phải implement non-abstract methods, nhưng những phương thức abstract trong lớp cha thì lớp con bắt buộc phải override. Trừ khi subclass cũng là abstract.

Cú pháp:

abstract class { }2. Phương thức trừu tượng trong Java

Một phương thức được khai báo là abstract và không có trình triển khai thì đó là phương thức trừu tượng (abstract method).Nếu bạn muốn một lớp chứa một phương thức cụ thể nhưng bạn muốn triển khai thực sự phương thức đó để được quyết định bởi các lớp con, thì bạn có thể khai báo phương thức đó trong lớp cha ở dạng abstract.Từ khóaabstractđược sử dụng để khai báo một phương thức dạng abstract. Phương thức abstract sẽ không có định nghĩa, được theo sau bởi dấu chấm phẩy, không có dấu ngoặc nhọn theo sau.

Một phương thức được khai báo là abstract và không có trình triển khai thì đó là phương thức trừu tượng (abstract method).Nếu bạn muốn một lớp chứa một phương thức cụ thể nhưng bạn muốn triển khai thực sự phương thức đó để được quyết định bởi các lớp con, thì bạn có thể khai báo phương thức đó trong lớp cha ở dạng abstract.Từ khóađược sử dụng để khai báo một phương thức dạng abstract. Phương thức abstract sẽ không có định nghĩa, được theo sau bởi dấu chấm phẩy, không có dấu ngoặc nhọn theo sau.

Cú pháp:

abstract void ();3. Ví dụ về lớp trừu tượng và phương thức trừu tượng

Ví dụ: Viết chương trình vẽ một hình bất kỳ với màu đỏ, sao cho cách sử dụng là giống nhau, bất kể đó là hình gì. Hình đó có thể làhình chữ nhật (rectangle), hình tròn (circle), tam giác (triangle), đường (line), …

Với yêu cầu trên, ta tạo một lớp trừu tượngShape. Lớp này cung cấp một phương thức trừu tượngdraw, phương thức này để đảm bảo rằng tất cả các hình đều có cùng cách sử dụng (draw). Ngoài ra, có phương thức không trừu tượnggetColorđể cung cấp màu sử dụng chung cho tất cả các hình. Tiếp theo, ta tạo 2 lớpRectanglevàCirclekế thừa từ lớpShape, 2 lớp này có những cách xử lýdrawkhác nhau. Cuối cùng, ta tạo classShapeApp, gọi phương thứcdrawđể vẽ hình theo yêu cầu.

Shape.java

public abstract class Shape { private String color = “red”; public Shape() { } public abstract void draw(); public String getColor() { return color; }}Rectangle.java

public class Rectangle extends Shape {
Override public void draw() { System.out.println(“Draw ” + super.getColor() + ” rectangle”); } }Circle.java

public class Circle extends Shape {
Override public void draw() { System.out.println(“Draw ” + super.getColor() + ” circle”); } }ShapeApp.java

public class ShapeApp { public static void main(String<> args) { Shape rect = new Rectangle(); rect.draw(); System.out.println(“—“); Shape circle = new Circle(); circle.draw(); }}Kết quả:

Draw red rectangle—Draw red circle4.Một vài lưu ý

Lớp con bắt buộc phải cài đặt (implement) tất cả các phương thức trừu tượng của lớp cha

Bạn nhận được thông báo lỗi nếu lớp con không cài đặt (implement) tất cả các phương thức trừu tượng của lớp cha:The type Triangle must implement the inherited abstract method Shape.draw().

Xem thêm: Trắc Nghiệm Sử 11 Bài 19 20, Trắc Nghiệm Lịch Sử 11 Bài 19 Có Đáp Án

*

Không thể khởi tạo trực tiếp một lớp trừu tượng

Bạn nhận được thông báo lỗi khi cố tình khởi tạo một lớp trừu tượng:Cannot instantiate the type Shape.