2012-01-26 2 views
0

У меня есть следующие классыУказание возврата по умолчанию при объявлении абстрактного метода

Интерфейс:

public abstract class MyAbstractClass 
{ 
    public abstract boolean checkSomething(); 
} 

Класс наследует абстрактный класс:

public class MyClass extends MyAbstractClass 
{ 
    public boolean checkSomething() 
    { 
    return true; 
    } 
} 

Когда я создаю MyClass в eclipse метод checkSomething() создается автоматически, но с false как возвращаемое по умолчанию значение. Есть ли способ указать в абстрактном методе определение того, каков будет тип возврата по умолчанию?

+2

Вы говорите о возвращаемом значении, которое затмение автоматически помещает в ваш код или возвращаемое значение для унаследованной функции? –

ответ

3

Нет, в Java нет такой вещи, как «возвращаемое по умолчанию значение». Каждая реализация должна решить это для себя - это просто метод, который использует шаблон Eclipse, который, как оказалось, выбрал false. Учитывая, что вы все равно должны заменять тело метода, я не вижу в этом такой проблемы.

Если стандартная реализация «just return true» является разумной, это звучит так: checkSomething не должен быть абстрактным в первую очередь - это то, где будет реализована реализация по умолчанию, и будет переопределяться классами, требующими более конкретного поведения ,

3

Посмотрите eclipse code templates

Кроме этого, вы можете создавать свои собственные аннотаций добиться того же.

0

Вы не можете иметь тело метода в абстрактном объявлении метода. Таким образом, нет способа указать возвращаемое значение по умолчанию в абстрактном методе. Это не зависит от шаблона IDE.

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