Статический метод в Java не может быть abstract
, и вы не можете его переопределить.Таким образом, вы не можете заставить подкласс реализовать определенный статический метод.
Единственный выход - требовать статический метод по соглашению (как примечание в сопутствующем JavaDoc) и использовать отражение для обеспечения во время выполнения (или во время сборки), что подкласс реализует требуемый статический метод.
Кстати - это распространенный «шаблон».Serializable
не определяет какие-либо методы, но в документации упоминаются три метода:
private void writeObject(java.io.ObjectOutputStream out)
throws IOException
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException;
private void readObjectNoData()
throws ObjectStreamException;
«Инфраструктура сериализации объектов» теперь использует отражение, чтобы проверить, реализованы ли эти методы классом, и, если да,вызывает эти методы.
Но я рекомендую поискать другие решения до с использованием этой стратегии.