爲什麼可以將內部類(也稱爲非靜態嵌套的)類定義到接口中?嵌套到接口中的類
它有什麼意義嗎?他們不能含有接口的實例中存在,因爲接口不能被實例化,所以......
以下不編譯:
interface MyInterface
{
static class StaticNestedClass
{
static int a()
{
return 0;
}
int b()
{
return 1;
}
}
class InnerClass
{
static int a()
{
return 0;
}
int b()
{
return 1;
}
}
}
有2個以上的類之間有什麼區別?實際上是否考慮到static
? 請注意,如果您將interface
更改爲class
,您顯然會在InnerClass
'static int a()
上收到編譯錯誤。
此外,看看下面:
interface MyInterface
{
int c=0;
static class StaticNestedClass
{
static int a()
{
return c;
}
int b()
{
return c+1;
}
}
class InnerClass
{
static int a()
{
return c;
}
int b()
{
return c+1;
}
}
}
不同於當包含實體外是一個類,這裏當然有作爲「沒有這樣的東西的內部(非靜態嵌套)類可以訪問外部的字段,而靜態嵌套類不能「,因爲考慮到我們的外部thingie是一個接口,我們的c
整數是隱式靜態的...... interface
的嵌套類也隱式地靜態嗎?
那麼再一次,StaticNestedClass
和InnerClass
只是一樣嗎?
我** **想'類InnerClass'隱含靜態的,在同樣'C' – Cruncher
@Cruncher事實上,接口中的任何非方法都會被編譯器自動標記爲「static」。 –