ИНТЕРФЕЙС И НАСЛЕДОВАНИЕ. (В сообщении об ошибке методы не являются абстрактными. Как мне это исправить?) - PullRequest
0 голосов
/ 10 марта 2020

Напишите программу для создания интерфейса, в котором вы должны объявить переменную int x= 20 и создать абстрактный класс. Внутри этого класса снова объявляем переменную int x=10. Создайте новый класс с именем test, который наследует абстрактный класс и интерфейс. Внутри этого класса создайте метод print и распечатайте все значения x.

interface A
{
    int x = 20;
    void abc(); 
}
abstract class C implements A
{
    void def();
    {
        int x = 10;
    }
}
class test extends C
{
    static void print()
    {
        test obj = new test();
        obj.abc();
        System.out.println(x);
        test obj1 = new test();
        obj.def();
        System.out.println(x);
    }
    public static void main(String arg[])
}

1 Ответ

0 голосов
/ 10 марта 2020

Я не уверен, что полностью понимаю вопрос, но здесь мы 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).

...