静态方法继承在java中

hgu*_*ser 1 java inheritance overriding

假设我有一个POJO User,我添加了一些静态方法来执行CRUD操作:

public class User {
    private String name;
    private int age;

    // getter and setter omitted
    //
    public static void add(User user) {
        // add person
    }

    public static int delete(Object id) {
        // delete person
        return 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

因为我有像User这样的其他实体,所以我想把这个adddelete方法抽象化,就像这样;

public class?interface Entity<T>{
    static add(T t);
    static delete(Object id);   
}

public class User extends Entity<User>{
    @override
    static add(User user){
        // add ...
    }

    ....
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?

kos*_*osa 8

不,这是不可能的.

首先,您无法在界面中定义静态方法.见这个讨论

其次,你不能覆盖static方法.见这个讨论.

我不确定您的要求,如果适用,我建议将它们作为实例方法保留,并允许每个类提供它自己的实现(如波希米亚建议的那样).