zoukankan      html  css  js  c++  java
  • Java匿名类

    实际使用中我们只需注意这几点儿:
          1. 使用匿名内部类时,我们必须是继承一个类或者实现一个接口,但是两者不可兼得,同时也只能继承一个类或者实现一个接口。
          2. 匿名内部类中是不能定义构造函数的。
          3. 匿名内部类中不能存在任何的静态成员变量和静态方法。
          4. 匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效。
          5. 匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。

    匿名类的语法

    Runnable hello = new Runnable() {  
        public void run() {  
            System.out.println("hello");  
        }  
    };
    一个匿名类由以下几个部分组成:

    new操作符
    Runnable:接口名称。这里还可以填写抽象类、普通类的名称。
    ():这个括号表示构造函数的参数列表。由于Runnable是一个接口,没有构造函数,所以这里填一个空的括号表示没有参数。
    {…}:大括号中间的代码表示这个类内部的一些结构。在这里可以定义变量名称、方法。跟普通的类一样。
     
     
    匿名内部类方法的访问:
    //方法1:直接在new A内部类后边加点加方法,这样访问,如果方法多了,调用太麻烦
    new D(){
        @Override
        public void ShowContext() {
            System.out.println("hello");
        }
    }.ShowContext();
    
    //方法2:通过创建对象来访问,多态思想
    D a=new D(){
        @Override
        public void ShowContext() {
            System.out.println("hello");
        }
    };
    a.ShowContext();

    匿名内部类在开发中的使用,一般是方法参数为接口的情况

    interface D{
        void ShowContext();
    }
    class B{
        //参数为接口对象
        public void show(D d) {
            d.ShowContext();
        }
    }
    
    public class niming {
        public static void main(String[]args) {
            B b=new B();
            //调用时使用匿名类创建匿名对象
            b.show(new D(){
                @Override
                public void ShowContext() {
                    System.out.println("hello");
                }
            });
        }
    }
  • 相关阅读:
    电脑进入bios和u盘启动快捷键
    Securecrt 在win7下 字体太少问题
    windows无法安装到这个磁盘 gpt分区形式
    优酷上传高清视频
    将文件服务器及域控制器从2003迁移至Windows Server 2008 R2
    L SERVER 数据库被标记为“可疑”的解决办法
    Outlook关闭时最小化
    windows 7系统封装总结
    查询某软件所连接的外网IP地址
    windows桌面图标及任务管理栏丢失
  • 原文地址:https://www.cnblogs.com/de-ming/p/12855616.html
Copyright © 2011-2022 走看看