形于下面这种形式的定义叫匿名内部类: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既有继承,又有实现。且若是是实现只能是实现一个接口。继承
也就是在定义变量的同时来定义它的类,因为一个变量只能定义成一种类型,固然匿名内部类只能扩展一个类或者实现一个接口了。
接口