Tại sao các phương thức tĩnh được hỗ trợ từ Java 8? Sự khác nhau giữa hai dòng trong phương thức chính trong mã dưới đây là gì?Mục đích của một phương thức tĩnh trong giao diện từ Java 8 là gì?
package sample;
public class A {
public static void doSomething()
{
System.out.println("Make A do something!");
}
}
public interface I {
public static void doSomething()
{
System.out.println("Make I do something!");
}
}
public class B {
public static void main(String[] args) {
A.doSomething(); //difference between this
I.doSomething(); //and this
}
}
Như chúng ta có thể thấy ở trên, tôi thậm chí không thực hiện trong B. mục đích gì nó sẽ phục vụ để có một phương pháp tĩnh trong một giao diện khi chúng ta có thể viết phương pháp tĩnh cùng trong lớp khác và gọi nó? Nó được giới thiệu cho bất kỳ mục đích nào khác ngoài mô đun. Và theo tính mô đun, ý tôi là như sau:
public interface Singable {
public void sing();
public static String getDefaultScale()
{
return "A minor";
}
}
Chỉ cần đặt các phương thức giống nhau.
Điều đó nên giải thích: https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html – Marvin
Không có sự khác biệt. – Professor901
Các phương thức tĩnh cung cấp các phương thức mặc định để triển khai các lớp không ghi đè lên. Nó đặc biệt hữu ích nếu logic phương thức được nhân rộng trên tất cả các triển khai. Ví dụ của bạn là hữu ích, nói rằng các lớp PopSong và RockSong có thể thực hiện nó và cả hai sẽ có quy mô mặc định là Trẻ vị thành niên. –