猿问

java抽象类的使用?

为什么抽象类可以这样使用


public abstract class SingleFragmentActivity extends AppCompatActivity{

    protected abstract Fragment createFragment();

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        if (fragment==null){

            fragment = createFragment();

            fragmentManager.beginTransaction()

                    .add(R.id.fragmentContainer,fragment)

                    .commit();

        }

    }

}

java中的抽象类可以这样使用吗,还是单纯Android中的使用。我在java1.8做类似的测试发现这样的使用是不行的。

这里的createFragment不就等同于实例化传给fragmnet,但是抽象类是不可以实例化。这里我是搞不懂的。


拉风的咖菲猫
浏览 566回答 4
4回答

海绵宝宝撒

1.抽象类可以继承2.有抽象方法必须定义成抽象类3.抽象类不一定要有抽象方法所写代码符合,题主所说的实例化问题,是抽象类不可以实例化,必须要子类继承重写后,可实例化,也就是不可以new。而不是说在抽象类的内部,不可以对其中的变量进行赋值。

犯罪嫌疑人X

你的疑问点在哪里?这样用有什么问题吗?这是标准Java写法啊

茅侃侃

这是Java的特性, 不是Android的特性, 抽象类你可以理解成未实现完成的类, 类里面只有部分逻辑, 有部分逻辑未实现, 需要交给子类来实现, 要实例化该类, 需要实现完成了才能实例化
随时随地看视频慕课网APP

相关分类

Java
我要回答