Я работаю над проектом на 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`
}
// ...
}
Я хочу иметь класс User
, расширяющий Model
, но я не хочу, чтобы повторно реализовать create()
в User
. Я просто хочу, чтобы изменить значение 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