Что делает строка кода «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();
Я бы все понял.
Вам бы учебник по java полистать =)
у вас абстрактный класс SingleFragmentActivity, у которого не может быть объектов.
от него можно только наследоваться.
а строчка "protected abstract Fragment createFragment();" программисту говорит,
что я объявляю метод createFragment() без реализации.
когда отнаследуешься от класса, обязательно напиши код для этого метода
в будущем будет использоваться твоя реализация.