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

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

如何使抽象超類的方法適用于子類

如何使抽象超類的方法適用于子類

慕斯王 2024-01-25 15:16:32
我正在制作一個(gè)國(guó)際象棋游戲,并嘗試對(duì)所有棋子使用繼承設(shè)計(jì)。我想讓子類 pawn 使用 Piece 中的 printPiece 方法,但我必須修改每個(gè)塊的參數(shù)。我知道在兩個(gè)類上使用相同的參數(shù)有點(diǎn)愚蠢,但我不知道如何使超類使用 print 方法而不在其中聲明圖標(biāo)。同樣,如果我想在超類上創(chuàng)建吸氣劑,子類無法識(shí)別它們。我已經(jīng)嘗試過提供的代碼,它無法識(shí)別圖標(biāo)是來自 pawn 的“i”,它只是使用超類方法并寫入 null。還嘗試對(duì)參數(shù)進(jìn)行保護(hù),但結(jié)果相同。public abstract class Piece{    private String name;    private int value;    private boolean alive;    private char icon;    public Piece() {}    public abstract Coordinate movePiece(Coordinate coor);    public abstract boolean canMovePiece();    public void printPiece()    {        System.out.print(icon);    }}public class Pawn extends Piece {    private String name;    private int value;    private boolean white;    private char icon;    public Pawn(boolean pWhite) {        super();        this.value = 1;        this.name = "Pawn";        this.white = pWhite;        if(pWhite) {this.icon = 'I';}        else {this.icon = 'i';}    }    public Coordinate movePiece(Coordinate coor){}    public boolean canMovePiece() {}}
查看完整描述

2 回答

?
慕田峪7331174

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

當(dāng)你擴(kuò)展 Piece 時(shí),你想要繼承 Piece 中所有 Piece 子類所共有的東西。所以你不用在 Pawn 中重新聲明變量。


            public class Piece

            {

                private char icon;

                public char getIcon() { return icon; }

                public void setIcon(char i) { icon = i; }

                public Piece(char c) { setIcon(c); }

            }


            public class Pawn extends Piece

            {

                public Pawn()

                {

                    super('I');

                }

            }

這是一種讓每個(gè)子類都有一個(gè)圖標(biāo)的方法,存儲(chǔ)在 Piece 中,以及設(shè)置和訪問它的方法。


查看完整回答
反對(duì) 回復(fù) 2024-01-25
?
慕姐4208626

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

通過在超類中聲明 a private char icon,可以防止子類訪問它。

您可以聲明private char icon一個(gè) setter,或者將其作為父類構(gòu)造函數(shù)的一部分,而不是在子類中重新聲明 a(這會(huì)隱藏父類的變量)。


查看完整回答
反對(duì) 回復(fù) 2024-01-25
  • 2 回答
  • 0 關(guān)注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報(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)