Вы объявляете obj
как GFG
объект.GFG
не не содержит метод getValue()
.
Важно понимать, что родительские объекты не наследуются от своих детей.Итак, в то время как GeeksForGeeks
равно a GFG
, GFG
равно , а не a GeeksForGeeks
(точно так же, как Buick
равно a Car
, но не каждый Car
является Buick
).
Обновите свою строку до GeeksForGeeks obj = new GeeksForGeeks();
или переместите метод getValue()
в свой класс GFG
, и вы окажетесь прямо как дождь.
Вы должны немного подумать о своем дизайне.Будет ли у каждого класса, который расширяет GFG
, метод getValue()
?Если это так, и все они будут делать то же самое, этот метод принадлежит классу GFG
.
Предположим, однако, что вы хотите, чтобы каждый дочерний элемент GFG
запускал свой собственный код, когда getValue()
называется.Тогда вы все равно захотите объявить getValue()
в GFG
, но вы переопределите его в своем GeeksForGeeks
классе:
@Override
public void getValue(){
// Code here
}
Это слишком упрощенное объяснение наследования, но оно должно привести вас кв правильном направлении, поскольку по этому предмету можно многому научиться.
Примечание: Ваш метод getValue()
на самом деле return
ничего не делает;это было бы запутанной реализацией;что звонящий "получает" из метода?