考慮followoing代碼器具法鑄造
interface MyInterface{
void method(String s);// if we write static modifier we have compile error
}
class MyClass implements MyInterface{
public static void main(String[] args){
myMethod(new Object());//Compile error
}
static void method(String s){...}// compile error
static void myMethod(Number n){...}
}
- 爲什麼我們不能在接口定義靜態方法?
- 爲什麼我們不能器具
method()
用static修飾符? - 當我們通過引用Object來調用myMethod時,我們有編譯錯誤。據我瞭解,編譯器不會自動投射,不是嗎?
考慮下面的代碼
Object someObj; ... Number n= (Number) someObj;
什麼編譯當我們在這種情況下轉換爲Number
是幹什麼的?
請參閱[我們爲什麼要將接口方法聲明爲public?](http://stackoverflow.com/questions/9614708/why-should-we-declare-interface-methods-as-public) – Smit
@Smit不同的主題。沒有真正涉及到這個問題 –
你在問幾個不同的問題,每個問題都應該單獨提出。第一種可能的重複[爲什麼我不能在界面中聲明靜態方法?](http://stackoverflow.com/q/21817/1281433)。 –