精华内容
下载资源
问答
  • 一个匿名内部类一定是继承一个类或者实现一个接口,new了这个父类或接口名的内部类还带内容,我就想问能不能还能不能继承其他类或实现其他接口。 如果我表达不好,不好理解, 那...匿名内部类能能实现多个接口??
  • 这种写法相当于先创建了一个匿名类,实现了这个接口,然后new一个这个匿名类的对象 所以可以使用. 这个是等于创建了一个匿名内部类,这个类实现了该接口,并实现了该接口的run方法。 与你定义一个类实现这个接口是...

    java 接口不是不能new吗?

    • 这叫匿名内部类,你后面的大括号实际上就是一个Runnable的实现类了 只不过这个类名和接口名称一样,所以是匿名的,别人地方也用不了
    • 这种写法相当于先创建了一个匿名类,实现了这个接口,然后new一个这个匿名类的对象
      所以可以使用.
    • 这个是等于创建了一个匿名内部类,这个类实现了该接口,并实现了该接口的run方法。
      与你定义一个类实现这个接口是等效的。
      不过这个就是没有类名。而且无法在其他地方new出对象。
    • java:使用匿名类直接new接口
    • java中的匿名类有一个倍儿神奇的用法,见下面代码示例:package com.dtqn.action;  public interface interFace {    void writeClass();}实现类package com.dtqn.action;  public class Program {      public static void main(String[] args) {        // TODO Auto-generated method stub        interFace say = new interFace(){              @Override            public void writeClass() {                // TODO Auto-generated method stub                            }                    };    }  }new接口用于简化代码用。。。。。。。。。
       
    展开全文
  • 实现接口的方法:类实现:重写接口所有方法 抽象子类:抽象子类继承接口 有朋友问:你的匿名对象实现接口怎么实现的... 还记的上面那个临时创建的实现类吗,他全部重写了接口方法,只是方法体是空的。我虽然只重写了部
    //接口定义
    interface Comparator{
       int compare(T o1,T o2);
       boolean equals(Object obj);
    }

    //对象类定义
    public class User{
       private String name;
       private float  chinese;
       private float  math;
       private float  english;

       public Student(){
          super();
       }

       public Student(String name,float math,float english,float english){
          super();
          this.name=name;
          this.chinese=chinese;
          this.math=math;
          this.english=english;
       }

       public String toString(){
          return "Student [name=" + name + ", chinese=" + chinese + ", math=" + math + ", english=" + english +"]";
       }
    }

    //测试类
    public class test {

    public static void main(String[] args) {
    // 创建带构造器的集合对象,使用匿名对象实现Comparator接口
    TreeSet treeset=new TreeSet<>(new Comparator() {
    //实现接口,重写了compare()方法,具体过程看不懂可以不看,对于理解无碍
    public int compare(Student o1, Student o2) {
    float num=o2.getChinese()+o2.getEnglish()+o2.getMath()-o1.getChinese()-o1.getEnglish()-o1.getMath();
    num=num==0?o2.getName().compareTo(o1.getName()):num;
    num=num==0?o2.getChinese()-o1.getChinese():num;
    num=num==0?o2.getEnglish()-o1.getEnglish():num;
    num=num==0?o2.getMath()-o1.getMath():num;
    return (int)num;
    }
    });

    treeset.add(new Student("zhangsan",30,40,86));
    treeset.add(new Student("zhangsan1",32,60,80));
    treeset.add(new Student("zhangsan2",30,45,30));
    treeset.add(new Student("zhangsan3",30,10,80));
    treeset.add(new Student("zhangsan4",60,43,80));
    treeset.add(new Student("zhangsan1",32,60,80));
    treeset.add(new Student("zhangsan1",32,61,79));
    for(Student i:treeset)
    System.out.println(i);

    }
    }

    实现接口的方法:类实现:重写接口所有方法
                    抽象子类:抽象子类继承接口
    有朋友问:你的匿名对象实现接口怎么实现的?怎么还能直接new接口呢?
          答:匿名对象类实现接口使用了简化写法,在使用匿名内部类时会自动创建一个实现类,其实你不是new了那
                个接口,你是new了那个实现类!
          问:你的重写方法怎么没有全部重写接口的
                还记的上面那个临时创建的实现类吗,他全部重写了接口方法,只是方法体是空的。我虽然只重写了部
                分方法,但是其他方法已经被临时类重写了只不过是空方法而已!
    展开全文
  • 我之前会有一个疑惑: 匿名内部类的格式: ...原来匿名内部类整体=父类的子类/接口的实现类 利用了多态性,创建了一个没有名字的类,就是因为没有名字才要借助父类/接口来完成定义。【它没有其他亲...

    我之前会有一个疑惑:
    匿名内部类的格式:
    new 父类/接口{
    //重写父类/接口的方法
    }
    我看了这个我就奇了怪了,
    new 不是创建对象吗?接口不是不能被实例化嘛?
    父类自己都有run方法,干嘛还有重写?重写不是指重写自己的父类方法吗?
    怎么回事?
    原来匿名内部类整体=父类的子类/接口的实现类
    利用了多态性,创建了一个没有名字的类,就是因为没有名字才要借助父类/接口来完成定义。【它没有其他亲人了】

    展开全文
  • 接口的使用需要一个实现类的对象,有时候只需要使用一次,那么跳过实现类的定义呢?同样的,一个父类的实现有时候也需要靠子类,这个子类的定义可以省略吗?

    接口的使用需要一个实现类的对象,有时候只需要使用一次,那么能不能跳过实现类的定义呢?同样的,一个父类的实现有时候也需要靠子类,这个子类的定义可以省略吗?

    public interface MyInterface {
        void method();
    }
    

    下面是上面接口的实现类

    public class MyInterfaceImpl implements MyInterface {
        @Override
        public void method() {
            System.out.println("实现类覆盖重写了抽象方法");
        }
    }
    

    下面的main方法中,前半部分用上面写的实现类调用method方法,而后半部分用的就是一个匿名类,在{}中覆盖重写了接口中的抽象方法,而后可以直接通过接口类型的变量调用method方法。

    public class Demo {
        public static void main(String[] args) {
            // 以往new实现类MyInterfaceImpl()来调用method方法
            MyInterfaceImpl myInerfaceimpl = new MyInterfaceImpl();
            myInerfaceimpl.method();
            MyInterface obj = new MyInterfaceImpl(); // 或者多态写法
            obj.method();
            // 今天学习了匿名内部类,不需要实现类
            MyInterface AnonymousObject = new MyInterface() {
                @Override
                public void method() {
                    System.out.println("匿名内部类覆盖重写了抽象方法");
                }
            };
            AnonymousObject.method();
        }
    }
    
    //实现类覆盖重写了抽象方法
    //实现类覆盖重写了抽象方法
    //匿名内部类覆盖重写了抽象方法
    

    格式解析:
    接口名 对象名=new 接口名{…}
    等号右边new代表创建对象的动作,接口名就是匿名内部类需要去实现的哪个接口的名称,{…}中是匿名内部类的内容,一般是对接口中所有抽象方法进行重写。

    注意事项:

    1. 匿名内部类在创建对象的时候,只能使用唯一一次,想要再创建个对象,得整套再写一遍【 接口名 对象名2=new 接口名{…}】来获得第二个对象。
    2. 匿名内部类还可以以匿名对象的形式使用,这时候只能调用一次方法,再想用method()方法时已经找不到这个对象了,因为它是匿名的。如下代码:
    3. 匿名内部类是省略了【实现类/子类名称】,而匿名对象是省略了【对象名称】(如第2点)
            new MyInterface() {
                @Override
                public void method() {
                    System.out.println("匿名内部类覆盖重写了抽象方法");
                }
            }.method();
    
    展开全文
  • 接口中可以有实现代码吗?

    千次阅读 2017-03-23 09:37:08
    因为接口是一种契约,是一种框架性协议,这表明它的实现类都是同一种类型,或者说具备相似特征的一个集合体。然而对于一般的程序,接口确实没有任何实现,但是匿名内部类(或者内部类)呢?下面请看代码。 ...
  • 内部

    2018-04-05 16:08:06
    1、什么是?可以理解为一个对象。为啥需要对象?因为单身吗?因为我们需要对象去做一些事情2、啥是内部?内部就是在的内部...使用匿名内部我们必须要继承一个父类或者实现一个接口,当然也仅只继承一个...
  • Lambda表达式你会吗

    2021-02-17 19:12:35
    臃肿的代码轻量化,实现逻辑突出化,可以取代大部分的匿名内部,写出更优雅的Java代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。 举个简单栗子: //常规匿名写法 new Thread(new Runnable() {...
  • java中接口是不new的,当new一个接口的时候,那么这个就是一个实现该接口的匿名类,这么理解正确吗
  • HanSon/vbot: 基于PHP7的微信个人号机器人,通过实现匿名函数可以方便地实现各种自定义的功能 yaphone/itchat4j: 用Java扩展个人微信号的能力 kanjielu/jeeves: 使用springboot开发的微信机器人 问题和建议 如果有...
  • 这样做有很大弊端,其一是iframe经常会对弹出层造成遮挡(ie6下),其二是每个页面都有一个jsp页面(其实就是些js、css之的引用)和js文件,维护起来很是不便;其三,iframe里的遮罩没法挡住整个屏幕区域。既然...
  • 46、内部可以引用它的外部的成员吗?有没有什么限制?...47、Anonymous Inner Class (匿名内部) 是否可以extends(继承)其它,是否可以implements(实现)interface(接口)? 可以继承其他实现其他接口。而
  • Lambda表达式

    2020-08-11 14:09:49
    为了省去定义一个实现类的麻烦,不得不采取了匿名内部类 不得不重写run方法,所以方法名称,方法参数,方法返回值不得不再写一遍,还不写错 而实际上,似乎只有方法体才是关键 编程思想转换 做什么,而不是怎样做...
  • Java面试题集

    2018-04-17 11:45:43
    谈谈对Java多态的理解?多态是指父类的某个方法被子重写时,可以产生自己的功能行为,同一个操作作用于不同对象,可以有不同...它对子类隐藏,因此静态方法也不能实现多态。为什么Java里的匿名内部只能访问fina...
  • 疯狂JAVA讲义

    2014-10-17 13:35:01
    第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 ...11.8.1 Image抽象类和BufferedImage实现类 425 11.8.2 使用ImageIO输入/输出位图 427 11.9 剪贴板 432 11.9.1 数据传递的类...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    修饰符(关键字)如果一个被声明为final,意味着它不再派生出新的子类,不作为父类被继承。因此一个既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被...
  • java面试宝典

    2013-02-28 16:04:01
    98、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101、如何优化Hibernate? 23 102、Struts工作机制?为什么要使用Struts? 23 ...
  • 千方百计笔试题大全

    2011-11-30 21:58:33
    98、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101、如何优化Hibernate? 23 102、Struts工作机制?为什么要使用Struts? 23 ...
  • 接口的实现与子类相似,除了该实现类从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它...
  • Kotlin 协程学习

    2020-08-12 20:51:52
    1.1 Lambda表达式和匿名内部的区别 注:Kotlin出现时,Java还在6/7,这也是为什么Kotlin从一开始就被提倡应用于Android开发的一个小小的原因(因为Java还没有Lambda表达式)。 在使用协程(以及很大一部分代码块)...
  • 基本信息 作者: 臧萌 ...12.2.4 使用接口仅需一步——实现接口 342 12.2.5 接口——让集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 重温上节中的程序 349...
  • 基本信息 作者: 臧萌 ...12.2.4 使用接口仅需一步——实现接口 342 12.2.5 接口——让集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 重温上节中的程序 349...
  • 基本信息 作者: 臧萌 ...12.2.4 使用接口仅需一步——实现接口 342 12.2.5 接口——让集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 重温上节中的程序 349...
  • java 面试题 总结

    2009-09-16 08:45:34
    接口的实现与子类相似,除了该实现类从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它...
  • 【基础】Anonymous Inner Class(匿名内部)是否可以继承其它?是否可以实现接口? 30 【基础】Java 中的final关键字有哪些用法? 31 【基础】内部可以引用它的包含(外部)的成员吗?有没有什么限制? 31 ...
  • java基础题 很全面

    2009-05-09 09:24:24
    68. Anonymous Inner Class (匿名内部) 是否可以extends(继承)其它,是否可以implements(实现)interface(接口)? 15 69. LINUX下线程,GDI的解释。 15 70. java常用的设计模式?说明工厂模式。 15 71. 内部可以...
  • Visual C++ 2008入门经典--详细书签版

    热门讨论 2013-02-02 16:07:15
    他曾在IBM工作多年,使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工...
  • 他曾在IBM工作多年,使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工...
  • java面试题

    2018-01-01 15:35:15
    71.8. Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 60 71.9. 说下Hibernate的缓存机制 60 71.10. Hibernate的查询方式 60 71.11. 如何优化Hibernate? 61 71.12. Hibernate和spring中常出现的几个...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

匿名类能实现类吗