0
首先我對這個問題的字眼感到抱歉,我不確定如何提問,但我可以更好地解釋它。當父類是引用類型並通過方法傳遞時,如何從子類訪問屬性?
我有一個父類和2個類中,只有一個是relavent的例子
public abstract class AudioFile{ //parent
blah blah blah
} //end class AudioFile
public class MP3File extends AudioFile{
private int bitRate; //unique to MP3File class
} //end class MP3File
現在都說我是個MP3File對象,但其引用的AudioFile
public class Driver{
... // pretend main exists
AudioFile file = new MP3File();
file.setBitRate(100); //pretend method exists
edit(file);
private void edit(AudioFile audio)
{
//how would I edit the bit rate?
} //end method edit
} //end class Driver
如果您只需要MP3File和MP3File功能,那麼它應該是一個MP3File變量。 –
Hovercraft所說的或者你可以將它轉換成更具體的類型,可能取決於一些不同的輸入(例如,作爲第二參數發送的枚舉)。 –
它在你的示例函數中編輯比特率沒有任何意義,因爲它沒有任何比特率信息 - 是的,這是一個非常簡單的例子,我知道:)你可以把editBitrate函數放在抽象類型中,然後離開它在沒有意義的兒童課程中未實施? –