*

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

Bạn đang xem: Lớp trừu tượng là gì


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


*

1. Lớp trừu tượng (Abstract Class) vào 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 rất 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 những method trừu tượng bên trong.

- chẳng thể khởi sinh sản 1 đối tượng người dùng trực tiếp từ một lớp trừu tượng.

Một lớp thừa kế từ lớp trừu tượng (subclass – lớp con) không nhất thiết phải implement non-abstract methods, nhưng đông đảo phương thức abstract trong lớp phụ thân thì lớp con bắt buộc phải override. Trừ lúc subclass cũng chính là abstract.

Cú pháp:

abstract class 2. Cách làm trừu tượng vào Java

Một cách tiến hành được khai báo là abstract và không tồn tại trình thực hiện thì đó là cách làm trừu tượng (abstract method).Nếu bạn có nhu cầu một lớp đựng một phương thức rõ ràng nhưng bạn có nhu cầu triển khai thực sự cách thức đó để được quyết định bởi những lớp con, thì bạn có thể khai báo phương thức đó vào lớp thân phụ ở dạng abstract.Từ khóaabstractđược áp dụng để khai báo một thủ tục dạng abstract. Cách làm abstract sẽ không có định nghĩa, được theo sau do dấu chấm phẩy, không có dấu ngoặc nhọn theo sau.

Cú pháp:

abstract void ();3. Lấy ví dụ như về lớp trừu tượng và thủ tục trừu tượng

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

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

Shape.java

public abstract class Shape private String màu sắc = "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 phải phải thiết đặt (implement) tất cả các cách tiến hành trừu tượng của lớp cha

Bạn dìm được thông tin lỗi ví như lớp nhỏ không setup (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: Sự Khác Nhau Chủ Yếu Giữa Quan Hệ Hỗ Trợ Và Quan Hệ Đối Địch Của Các Sinh Vật Khác Loài Là Gì

*

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

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