我對接口有問題。如果我在Eclipse中編寫下面的代碼片段,爲什麼在編寫代碼時不給出錯誤,以及它如何獲取字符串類的所有方法?如何java接口可以對象類的方法
public class Test{
public static void main(String args[]){
TestI ti = null;
ti.toString();
}
}
interface TestI
{}
我對接口有問題。如果我在Eclipse中編寫下面的代碼片段,爲什麼在編寫代碼時不給出錯誤,以及它如何獲取字符串類的所有方法?如何java接口可以對象類的方法
public class Test{
public static void main(String args[]){
TestI ti = null;
ti.toString();
}
}
interface TestI
{}
你期望它給予什麼錯誤?
接口是引用類型,因此當您定義接口TestI時,可以將其用作數據類型。 (TestI ti = null)
接口隱式聲明與Object類中聲明的每個公共實例方法相對應的公共抽象成員方法,除非顯式聲明具有相同簽名,相同返回類型和兼容throws子句的方法通過那個接口。 - 這意味着你可以調用Object類的任何方法,除非它在你的接口中聲明。它不是從Object類繼承的。
見http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.2
'的toString()'和'Object'如果正在添加這是一個問題 – 2013-10-24 20:01:09
任何實現的'TestI'必須是一個具體的類。任何具體的類都必須擴展Object。 –
你編譯過這段代碼嗎? 'string'應該是'String'。你運行它了嗎? 'null.toString()'會拋出一個'NullPointerException'。 –