java父访问子的静态变量

时间:2016-07-06 22:16:08

标签: java

我有一个由孩子们扩展的父类Table

父类:

abstract class Table{

    public static String getFullTable(){
        return child.DBTABLE + '.' + child.DBNAME;
    }

}

样本表

class User extends Table{
    public static final String DBTABLE = "user";
    public static final String DBNAME = "test";
}

致电User.getFullTable()时,我想要检索值test.user

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

添加从子类请求信息的抽象方法,如下所示:

abstract class Table{

    protected abstract String getDBTable();
    protected abstract String getDBName()

    public String getFullTable(){
        return getDBTable() + '.' + getDBName();
    }

}

class User extends Table{
    public static final String DBTABLE = "user";
    public static final String DBNAME = "test";

    protected String getDBTable() {
        return DBTABLE;
    }

    protected String getDBName() {
        return DBNAME;
    }
}

值得注意的是,我将getFullTable()更改为非静态。在抽象类中使用一个静态方法,该方法依赖于它的子类实际上没有任何意义。