第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

抽象類可以有構(gòu)造函數(shù)嗎?

抽象類可以有構(gòu)造函數(shù)嗎?

胡說(shuō)叔叔 2019-06-24 13:57:05
抽象類可以有構(gòu)造函數(shù)嗎?抽象類可以有構(gòu)造函數(shù)嗎?如果是的話,如何使用它,以及用于什么目的?
查看完整描述

3 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

如果您處于以下情況之一,將在抽象類中定義構(gòu)造函數(shù):

  • 您希望在子類實(shí)例化之前執(zhí)行一些初始化(對(duì)抽象類的字段)。
  • 您已經(jīng)在抽象類中定義了最終字段,但是沒(méi)有在聲明本身中初始化它們;在本例中,您必須有一個(gè)構(gòu)造函數(shù)來(lái)初始化這些字段。

請(qǐng)注意:

  • 您可以定義多個(gè)構(gòu)造函數(shù)(具有不同的參數(shù))。
  • 你可以(應(yīng)該嗎?)定義所有受保護(hù)的構(gòu)造函數(shù)(讓它們公開(kāi)是沒(méi)有意義的)
  • 您的子類構(gòu)造函數(shù)可以調(diào)用抽象類的一個(gè)構(gòu)造函數(shù);它甚至可以調(diào)用一個(gè)構(gòu)造函數(shù)。

    不得不

    調(diào)用它(如果抽象類中沒(méi)有no-arg構(gòu)造函數(shù))

無(wú)論如何,不要忘記,如果您不定義構(gòu)造函數(shù),那么編譯器將自動(dòng)為您生成構(gòu)造函數(shù)(這個(gè)構(gòu)造函數(shù)是公共的,沒(méi)有參數(shù),什么也不做)。


查看完整回答
1 反對(duì) 回復(fù) 2019-06-24
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

抽象類可以有構(gòu)造函數(shù)。!

是的,當(dāng)我們將類定義為抽象類時(shí),它不能被實(shí)例化,但這并不意味著抽象類不能有構(gòu)造函數(shù)。每個(gè)抽象類必須有一個(gè)具體的子類,它將實(shí)現(xiàn)該抽象類的抽象方法。

當(dāng)我們創(chuàng)建任何子類的對(duì)象時(shí),相應(yīng)繼承樹(shù)中的所有構(gòu)造函數(shù)都會(huì)在自頂向下的方法中被調(diào)用。同樣的情況也適用于抽象類。雖然我們不能創(chuàng)建抽象類的對(duì)象,但是當(dāng)我們創(chuàng)建抽象類的一個(gè)具體的子類對(duì)象時(shí),抽象類的構(gòu)造函數(shù)就會(huì)被自動(dòng)調(diào)用。因此,我們可以在抽象類中有一個(gè)構(gòu)造函數(shù)。

注意:非抽象類不能有抽象方法,但是抽象類可以有非抽象方法。原因類似于構(gòu)造函數(shù),不同之處在于,我們可以調(diào)用Super(),而不是自動(dòng)調(diào)用它。而且,沒(méi)有什么比抽象構(gòu)造函數(shù)更有意義的了,因?yàn)樗緵](méi)有意義。


查看完整回答
1 反對(duì) 回復(fù) 2019-06-24
?
慕的地8271018

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

是的,抽象類可以有構(gòu)造函數(shù)??紤]到這一點(diǎn):

abstract class Product { 
    int multiplyBy;
    public Product( int multiplyBy ) {
        this.multiplyBy = multiplyBy;
    }

    public int mutiply(int val) {
       return multiplyBy * val;
    }}class TimesTwo extends Product {
    public TimesTwo() {
        super(2);
    }}class TimesWhat extends Product {
    public TimesWhat(int what) {
        super(what);
    }}

超階級(jí)Product是抽象的,并具有構(gòu)造函數(shù)?;炷良?jí)TimesTwo具有一個(gè)構(gòu)造函數(shù),該構(gòu)造函數(shù)僅對(duì)值2進(jìn)行硬編碼。TimesWhat具有允許調(diào)用方指定值的構(gòu)造函數(shù)。

抽象構(gòu)造函數(shù)將經(jīng)常用于強(qiáng)制類約束或不變量,例如設(shè)置類所需的最小字段。

注意:由于父抽象類中沒(méi)有默認(rèn)(或非Arg)構(gòu)造函數(shù),子類中使用的構(gòu)造函數(shù)必須顯式調(diào)用父構(gòu)造函數(shù)。


查看完整回答
反對(duì) 回復(fù) 2019-06-24
  • 3 回答
  • 0 關(guān)注
  • 1707 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)