拉風(fēng)的咖菲貓
2019-03-22 09:15:15
為什么抽象類(lèi)可以這樣使用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中的抽象類(lèi)可以這樣使用嗎,還是單純Android中的使用。我在java1.8做類(lèi)似的測(cè)試發(fā)現(xiàn)這樣的使用是不行的。這里的createFragment不就等同于實(shí)例化傳給fragmnet,但是抽象類(lèi)是不可以實(shí)例化。這里我是搞不懂的。
4 回答

海綿寶寶撒
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
1.抽象類(lèi)可以繼承
2.有抽象方法必須定義成抽象類(lèi)
3.抽象類(lèi)不一定要有抽象方法
所寫(xiě)代碼符合,
題主所說(shuō)的實(shí)例化問(wèn)題,是抽象類(lèi)不可以實(shí)例化,必須要子類(lèi)繼承重寫(xiě)后,可實(shí)例化,也就是不可以new。而不是說(shuō)在抽象類(lèi)的內(nèi)部,不可以對(duì)其中的變量進(jìn)行賦值。

犯罪嫌疑人X
TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

茅侃侃
TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊
添加回答
舉報(bào)
0/150
提交
取消