@KnightForce

Что делает строка кода «protected abstract Fragment createFragment();»?

Есть код:

public abstract class SingleFragmentActivity extends FragmentActivity {
protected abstract Fragment createFragment();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);
if (fragment == null) {
fragment = createFragment();
fm.beginTransaction()
.add(R.id.fragmentContainer, fragment)
.commit();
}
}
}

Я понимаю что он делает кроме одной строчки:
protected abstract Fragment createFragment();

protected abstract - тут понятно, защищенный абстрактный.
Fragment - я, так понял, тип.
createFragment() - тоже понятно.
Но вместе для меня совершенно неясно.

Было бы так:
protected abstract Fragment fm = createFragment();
Я бы все понял.
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 1
@onepavel
Консультация и разработка мобильных приложений
Вам бы учебник по java полистать =)
у вас абстрактный класс SingleFragmentActivity, у которого не может быть объектов.
от него можно только наследоваться.
а строчка "protected abstract Fragment createFragment();" программисту говорит,
что я объявляю метод createFragment() без реализации.
когда отнаследуешься от класса, обязательно напиши код для этого метода
в будущем будет использоваться твоя реализация.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы