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

Đăng bởi : Admin | Lượt xem : 3381 | Chuyên mục : Java

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 dùng và các ví dụ minh họa.

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

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

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

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

– Lớp trừu tượng hoàn toàn có thể có những cách abstract hoặc non-abstract . – Lớp trừu tượng hoàn toàn 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 người tiêu dùng trực tiếp từ một lớp trừu tượng . 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 cách 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 cách được khai báo là abstract và không có trình tiến hành thì đó là cách trừu tượng ( abstract method ) .

Nếu bạn muốn một lớp chứa một cách đơn cử nhưng bạn muốn tiến hành thực sự cách đó để được quyết định hành động bởi những lớp con, thì bạn hoàn toàn có thể khai báo cách đó trong lớp cha ở dạng abstract .

Từ khóa abstract được 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 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 nhu yếu trên, ta tạo một lớp trừu tượng Shape. Lớp này phân phối một cách trừu tượng draw, cách này để bảo vệ rằng tổng thể những hình đều có cùng cách dùng ( draw ). Ngoài ra, có cách không trừu tượng getColor để cung ứng màu dùng chung cho tổng thể những hình. Tiếp theo, ta tạo 2 lớp Rectangle và Circle kế thừa từ lớp Shape, 2 lớp này có những cách giải quyết và xử lý draw khác nhau. Cuối cùng, ta tạo class ShapeApp, gọi cách draw để vẽ hình theo nhu yế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 circle

4. 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 tin lỗi nếu lớp con không thiết lập ( implement ) tổng thể những cách trừu tượng của lớp cha : The type Triangle must implement the inherited abstract method Shape. draw ( ) .

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.

0 Shares
Share
Tweet
Pin