匿名

2018-08-29  本文已影响4人  张轻舟

匿名内部类

匿名内部类是局部内部类的一种特殊形式,也就是没有变量名指向这个类的实例,而且具体的类实现会写在这个内部类里面。

注意:匿名类必须继承一个父类或实现一个接口。

不使用匿名内部类来实现抽象方法:

abstract class Person { public abstract void eat(); } 
class Child extends Person { public void eat() { System.out.println("eat something"); } } 
public class Demo { public static void main(String[] args) { Person p = new Child(); p.eat(); } }

运行结果:
eat something

可以看到,我们用Child继承了Person类,然后实现了Child的一个实例,将其向上转型为Person类的引用。但是,如果此处的Child类只使用一次,那么将其编写为独立的一个类岂不是很麻烦?

这个时候就引入了匿名内部类。使用匿名内部类实现:

abstract class Person { public abstract void eat(); }
 public class Demo { public static void main(String[] args){ // 继承 Person 类 new Person()
 { public void eat() { System.out.println("eat something"); } }.eat(); } }

可以看到,匿名类继承了 Person 类并在大括号中实现了抽象类的方法。

内部类的语法比较复杂,实际开发中也较少用

上一篇 下一篇

猜你喜欢

热点阅读