我正在使用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