匿名

作者: 张轻舟 | 来源:发表于2018-08-29 21:55 被阅读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 类并在大括号中实现了抽象类的方法。

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

    相关文章

      网友评论

          本文标题:匿名

          本文链接:https://www.haomeiwen.com/subject/fxklwftx.html