Tốt rồi. Để hiểu những điều trên, trước tiên bạn phải hiểu bản chất của các lớp trừu tượng. Chúng tương tự như các giao diện trong khía cạnh đó. Đây là những gì Oracle nói về điều này ở đây .
Các lớp trừu tượng tương tự như giao diện. Bạn không thể khởi tạo chúng và chúng có thể chứa hỗn hợp các phương thức được khai báo có hoặc không có triển khai.
Vì vậy, bạn phải suy nghĩ về những gì xảy ra khi một giao diện mở rộng giao diện khác. Ví dụ ...
//Filename: Sports.java
public interface Sports
{
public void setHomeTeam(String name);
public void setVisitingTeam(String name);
}
//Filename: Football.java
public interface Football extends Sports
{
public void homeTeamScored(int points);
public void visitingTeamScored(int points);
public void endOfQuarter(int quarter);
}
... như bạn có thể thấy, điều này cũng biên dịch hoàn toàn tốt. Đơn giản là vì, giống như một lớp trừu tượng, một giao diện KHÔNG thể được khởi tạo. Vì vậy, không bắt buộc phải đề cập rõ ràng đến các phương thức từ "cha mẹ" của nó. Tuy nhiên, TẤT CẢ các chữ ký phương thức cha DO hoàn toàn trở thành một phần của giao diện mở rộng hoặc triển khai lớp trừu tượng. Vì vậy, một khi một lớp thích hợp (một lớp có thể được khởi tạo) mở rộng ở trên, nó sẽ được yêu cầu để đảm bảo rằng mọi phương thức trừu tượng duy nhất được thực hiện.
Hy vọng điều đó sẽ giúp ... và Allahu 'alam!