形於下面這種形式的定義叫匿名內部類:java
Object o = new Object() { // 擴展自Object類 public String toString() { // 覆蓋toString()方法 } };
又或者:code
Runnable thread = new Runnable() { // 實現Runnable接口 public void run() { // 實現run()方法 } };
假如不是匿名類,而是一個普通類,咱們是否是能夠這樣寫:
class Universal extends FatherClass implements Interface1,Interface2 { }
普通類Universal 繼承於類FatherClass ,同時又實現了Interface1與Interface2接口。(實現了兩個接口)
而對於一個匿名類,就不能象上面的Universal既有繼承,又有實現。且若是是實現只能是實現一個接口。繼承
也就是在定義變量的同時來定義它的類,因爲一個變量只能定義成一種類型,固然匿名內部類只能擴展一個類或者實現一個接口了。
接口