因此,我將這段代碼放在一個文件夾中,這個文件夾是爲了一個項目而停止開發的。但是,對於Java而言,我有幾個問題(並且我知道代碼不能編譯,但這成爲我的一個問題)。類的繼承和鑄造
interface Executable {
public int execute (Object o);
}
public class Biv implements Executable {
public int execute (String s) {
System.out.println (s);
return s.length();
}
public static void main (String[] args) {
Executable e = new Biv();
System.out.println(
e.execute ("Hello World!"));
}
}
1)我的第一個問題是與變量e做。它是用可執行對象類型聲明的,但我不明白爲什麼可以用新的Biv對象實例化。這裏發生了什麼,這是什麼意思?
2)錯誤發生在Biv類的execute方法中。這似乎是因爲它期望一個對象而不是一個字符串。然而,你能不能用一個字符串替換一個對象,因爲字符串是對象的一個子類?我可以理解,如果你用Object替換了String,它會有一個錯誤(我認爲),但不是它目前如何完成。
值得注意的是,簽名不一定必須相同;參數類型可能會「鬆動」。例如,如果接口中的方法接受了'String',則可以讓'Biv'中的方法接受'Object'。 – Maxpm 2012-04-08 23:41:34
@Maxpm:事實並非如此。 – Natix 2012-04-08 23:49:29
@natix我站好了。 – Maxpm 2012-04-09 00:32:01