• 【匿名内部类可不可以继承或实现接口?】


    答案是可以,而且是必须。。不过不是那种extends的继承方式,解释如下:

    1.先了解一下匿名内部类:

    见名知意,匿名内部类没有类名,而且和其他类不同,它是一个表达式,语法类似于调用一个类的构造函数,如 A a = new A(){ };
    此外还包含一个代码块,代码块中完成其类的定义

    事实上,使用匿名内部类的前提条件就是必须继承一个父类或实现一个接口

    匿名内部类可以使你的代码更加简洁,你可以在定义一个类的同时对其进行实例化。它与局部类很相似,不同的是它没有类名,如果某个局部类你只需要用一次,那么你就可以使用匿名内部类

    2.代码示例:

    public class Anonymous {
        public static void main(String[] args) {
    /*
           匿名类是一个表达式,匿名类的语法就类似于调用一个类的构建函数
        new  Animals(),除些之外,还包含了一个代码块,在代码块中完成类的定义
        */
            Animals a = new Animals(){
                public void eat(){
                    System.out.println("匿名内部类");
                }
            };
            a.eat();//调用匿名内部类的方法
        }
    
    }
    
    abstract class Animals{
        public abstract void eat();
    }

    输出结果就是:匿名内部类

    可以节约一个类代码的定义(也就是直接把子类的代码放入父类中了)

    同理,接口也可以继承:

    interface Animals{

        public void eat();

    }

    匿名内部类内容和上面的一致;

     

    其实我们学习GUI的时候就用过匿名内部类,比如添加监听事件:

    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // do something
        }});

    这个new ActionListener(){};就是匿名内部类

     

     

     

  • 相关阅读:
    Mybatis plus 多表连接分页查询
    webstorm自动格式化.vue文件并符合Eslint
    Selenium python爬虫
    Cent OS防火墙配置端口开放
    开发Hexo主题(一)
    谷歌开发者主页回归
    个人博客网站
    linux搭建ftp
    putty之pscp上传文件
    送走了最好的兄弟 收到上交复试通知
  • 原文地址:https://www.cnblogs.com/dabuliu/p/14457793.html
Copyright © 2020-2023  润新知