Tôi đã một giao diện mang tên abc
chương trình được biên soạn ngay cả khi không thực hiện giao diện
public interface abc
{
void start();
}
và tôi có một lớp trừu tượng tên def
public abstract class def extends Thread implements abc
{
}
Tôi tạo ra một lớp mà kéo dài def
gọi ghj
public class ghj extends def
{
//it is defing all the methods of its above abstract class
//now it does not implement the method define in interface start();
}
Vui lòng thông báo nếu lớp ghj
không triển khai giao diện abc
các phương thức bắt buộc thì chương trình có thể được biên dịch như thế nào?
+1 Khi cả hai loại bỏ đều giống nhau :) –
có và điều gì sẽ xảy ra nếu chúng ta thay đổi kiểu trả về bắt đầu nhưng vẫn mở rộng chuỗi sẽ là biên dịch lỗi thời gian – anshulkatta
@anshulkatta Nếu bạn thay đổi kiểu trả về 'start()' giao diện, mã sẽ không biên dịch do các kiểu trả về không tương thích giữa hợp đồng phương thức (do giao diện đưa ra) và phương thức được cung cấp (được định nghĩa trong Thread). – Vulcan