Я не уверен, что полностью понимаю вопрос, но здесь мы go:
Сначала вы хотите объявить интерфейс A
с переменной x
, значение по умолчанию которой равно 20
interface A {
int x = 20;
}
Затем абстрактный класс C
, который реализует A
и переопределяет значение x
, чтобы установить его на 10
abstract class C implements A {
int x = 10;
}
Тогда это не очень понятно в вашем требовании, но я думаю, что лучший способ показать то, что вы хотите показать, это иметь 2 класса, один реализующий A
и один расширяющий C
. оба из которых имеют метод print()
, который отображает их значение x
. Давайте назовем их TestA
и TestC
соответственно
class TestA implements A {
void print() {
System.out.println(x);
}
}
class TestC extends C {
void print() {
System.out.println(x);
}
}
Теперь у вас может быть класс Test
, который создает экземпляры TestA
и TestC
и вызывает их print()
методов.
class Test {
public static void main(String[] args) {
new TestA().print();
new TestC().print();
}
}
Так что теперь, когда вы запускаете Test
, он выводит:
20
10
Так что это означает, что в классе, реализующем A
, значение x
- это 20
по умолчанию (как в TestA
). Но вы можете переопределить это значение и изменить его на что угодно (как в TestC
).