我正在使用Java的項目,我決定使用MVC體系結構。使繼承的方法使用子類的變量而不是超類'
我有Model
類,看起來像這樣:
public class Model {
static String table_name = null;
// ...
public static Model create(Map<String, Object> data) {
// insert `data` into database table `table_name`
}
// ...
}
我想有一個擴展Model
類User
,但我不想在User
重新實現create()
。我只是想改變的table_name
價值,並希望繼承create()
使用子table_name
:
public class User extends Model {
static String table_name = "users";
// ...
}
我怎樣才能做到這一點?
我知道一個解決方案,我想補充setTableName()
方法Model
,但只能當table_name
是非靜態的。然而,我需要它是靜態的,因爲我想create()
是靜態的,這樣我就可以這樣做:User.create()
。
這是行不通的。更好地將該值作爲參數傳遞給方法 – GurV
@GurwinderSingh究竟是什麼阻止它成爲可能? –
看[這裏](http://stackoverflow.com/questions/2593258/is-it-possible-to-access-variable-of-subclass-using-object-of-superclass-in-poly) – GurV