我有繼承自類A的類B。超類A是抽象的,包含一個抽象方法。我不想在類B中實現抽象方法,因此我需要聲明類B也是抽象的。聲明B類抽象,有兩件事情正在爲我工作(程序編譯和運行正確):Java中的抽象類和方法繼承
1.)我沒有在類B中聲明任何抽象方法,即使認爲類是抽象的。我認爲這是有效的,因爲類繼承了類A的抽象方法,這足以讓類聲明爲抽象類:我們不需要在類中直接聲明任何其他抽象方法。 2)我在類B中聲明瞭與它在類A中聲明相同的抽象方法。這是某種重寫(?),與在java中重寫(與使用相同的頭文件不同,但提供不同的實現),在這裏我只是再次使用該方法的相同頭。
這兩件事情都在起作用,我不確定它們是否都是好的,以及它們中的一些是否優先(更正確)。這兩種方式是否相同(它們對於Java意味着什麼)?
這裏我舉一些例子說明類,讓我對你意味着更加清晰:
案例1):
public abstract class A {
public abstract String giveSum();
}
public abstract class B extends A {
}
病例2):
public abstract class A {
public abstract String giveSum();
}
public abstract class B extends A {
public abstract String giveSum();
}
問候
如何「不會混淆讀者關於是否定義新方法」而不是「不奇怪」? ;-) – 2009-01-06 18:39:49
「不奇怪」是短:-) – 2009-01-06 21:36:06