cuốn sách gpt4 ai đã làm

Các vấn đề về giao diện Java và lớp trừu tượng

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 04:05:30 25 4
mua khóa gpt4 Nike

Tôi đang đọc sách-- Hadoop: Hướng dẫn dứt khoát

Trong Chương 2 (trang 25) có đề cập rằng "Các API mới thích các lớp trừu tượng hơn các giao diện vì chúng dễ phát triển hơn. Ví dụ: bạn có thể thêm một phương thức (với cách triển khai mặc định) vào một lớp trừu tượng mà không cần phá vỡ cách triển khai cũ của lớp học". Điều này có nghĩa là gì (cụ thể là "phá vỡ cách triển khai cũ của một lớp") có nghĩa là gì? Tôi sẽ biết ơn nếu ai đó có thể chỉ cho tôi một ví dụ tại sao các lớp trừu tượng lại tốt hơn giao diện theo quan điểm này?

Cảm ơn trước, George

câu trả lời hay nhất

Trong trường hợp giao diện, giao diện được xác định trong giao diệntất cảphương pháp必须Được thực hiện bởi lớp thực hiện nó.

Cho giao diện A

giao diện A {
public void foo();
}

và loại B:

lớp B thực hiện A {
}

必须Cung cấp cách triển khai cho các phương thức được xác định trong một giao diện:

lớp B thực hiện A {
@Ghi đè
khoảng trống công khai foo() {
System.out.println("foo");
}
}

Nếu không thì đó là lỗi thời gian biên dịch. Bây giờ hãy tham gia một lớp trừu tượngTriển khai mặc định bằng một phương thức:

lớp trừu tượng C {
thanh trống công khai() {
System.out.println("bar");
}
}

Một lớp kế thừa từ lớp trừu tượng này có thể trông như thế này:

lớp D mở rộng C { }

Không có lỗi. Nhưng nó cũng có thể ghi đè việc triển khai phương thức mặc định nếu muốn.

Điều tác giả đang nói là: Nếu API của bạn chưa ổn định và bạn cần điều chỉnh giao diện (vâng, các lớp trừu tượng cũng là giao diện (trong OOP)), thì các lớp trừu tượng cho phép bạn thêm mọi thứ mà không vi phạm Lớp hiện có. Tuy nhiên, điều này chỉ hoạt động đối với các phương pháp không trừu tượng. Nếu bạn thêm các phương thức trừu tượng, chúng vẫn cần được triển khai trong mọi lớp dẫn xuất. Nhưng nếu bạn có một API vẫn đang phát triển và đã có nhiều thứ được xây dựng dựa trên nó thì nó có thể giúp cuộc sống của bạn dễ dàng hơn.

Về vấn đề giao diện Java và các lớp trừu tượng, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/2840390/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress