Как я могу решить это упражнение по наследованию Java? - PullRequest
1 голос
/ 15 февраля 2011

Я новичок.Извините за это ..

Я ломаю голову, чтобы решить это упражнение.

Любая помощь будет высоко ценится.

...........................................................................

Определите в Java два класса, называемые MyBaseClass и MyDerivedClass.

В предыдущем классе объявляется защищенный и абстрактный метод с именем meth (), который не имеет параметров и возвращает целочисленное значение.

Последний класс расширяет первый и реализует унаследованный метод, возвращая значение 5.

.......................................................

Моя реализация (я знаю, что это неправильно, ноизвините, я не знаю почему ..):

public MyBaseClass {

    protected abstract meth();
    return ();
}

public MyDerivedClass extends MyBaseClass {

 meth();
 return (5);

} 

Ответы [ 3 ]

5 голосов
/ 15 февраля 2011

Это звучит как большая непонимание того, что может содержать класс и как ООП работает в целом.Внутри класса у вас есть методы и переменные, а не операторы кода.

Очевидно, meth(); - это оператор, действительно вызов функции.Хотя вам нужно реализовать абстрактный метод:

public abstract class MyBaseClass {
 protected abstract int meth();
}

public class MyDerivedClass extends MyBaseClass {
 protected int meth { return 5; }
}

Посмотрите: каждый класс содержит { } тело, которое содержит список методов, определенных сигнатурой (например, * 1008).*) и тело тоже (если не abstract).Переменные тоже разрешены.

Но имхо вы должны больше сосредоточиться на изучении основ ООП и основ программирования, прежде чем копаться в наследовании ... и всегда помните: в полном объектно-ориентированном языке программирования (например, Java) операторы не могут находитьсявне тела метода.

2 голосов
/ 15 февраля 2011

В вашей реализации отсутствуют базовые принципы в Java.Возможно, вам следует сначала изучить, как объявить метод / класс в Java.Однако вот правильное решение:

Абстрактный класс:

public abstract MyBaseClass {
    protected abstract int meth();
}

Класс-потомок:

public MyDerivedClass extends MyBaseClass {
    @Override
    protected int meth() {
        return 5;
    }
} 
1 голос
/ 15 февраля 2011
public abstract class MyBaseClass{

protected abstract int meth();


}

public class MyDerivedClass extends MyBaseClass{

protected int meth(){
return 5;
}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...