2017-02-20 6 views
-2

Хорошо, поэтому я новичок в java, так что это может быть глупый вопрос. В моем суперклассе есть метод, который принимает общий объект и возвращает объект. В моем подклассе я пытаюсь переопределить/сузить метод, чтобы вернуть абстрактный класс, который я определил в другом месте. По сути, все, что требуется для этого переопределения, - это преформировать тот же метод, но с замененным объектом более узким классом. Как мне это сделать? Это должна быть только строка или два кода, но я просто не знаю синтаксиса для него.Java. Метод Переопределение и сужение типа возврата

Так суперкласса Foo есть метод, как:

public abstract class Foo { 
    public Object doSomething() { 
     Object objVar; 
     //does stuff to objVar 
     return objVar; 
    } 
} 

Тогда конструктор для объекта в дифф Java файл:

public abstract class Zee { 
    //constructors & methods for zee 
} 

Тогда в Подкласс:

public class Subbie extends Foo { 
    @Override 
    public Zee doSomething() { //covariant return type?? maybe? 


    return //needs to preform the same actions 
      //as the super doSomething method, but with 
      //the narrower return type. 
    } 
} 
+3

Показать код или никто не может вам помочь. Пожалуйста, отредактируйте свой пост и включите [mcve], демонстрирующий ваш вопрос. –

ответ

0
  1. Чтобы проверить синтаксис сужения ret урна типа увидеть это: Can overridden methods differ in return type? (в основном вы делаете это право)

  2. Для вызова метода использования класса родительского super.doSomething()

  3. Вы не можете создать объект абстрактного класса. Вы должны расширить его и вернуть объект расширенного класса

Смежные вопросы