-
匿名内部类继承类的同时可以实现接口吗?
2017-01-06 09:53:04一个匿名内部类一定是继承一个类或者实现一个接口,new了这个父类或接口名的内部类还带内容,我就想问能不能还能不能继承其他类或实现其他接口。 如果我表达不好,不好理解, 那...匿名内部类能不能实现多个接口?? -
java 接口不是不能new吗?- java:使用匿名类直接new接口
2018-12-29 12:00:25这种写法相当于先创建了一个匿名类,实现了这个接口,然后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接口用于简化代码用。。。。。。。。。
-
匿名内部类实现Comparator接口,没有重写所有方法,为何不报错
2017-10-11 17:01:25实现接口的方法:类实现:重写接口所有方法 抽象子类:抽象子类继承接口 有朋友问:你的匿名对象实现接口怎么实现的... 还记的上面那个临时创建的实现类吗,他全部重写了接口方法,只是方法体是空的。我虽然只重写了部//接口定义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了那个实现类!问:你的重写方法怎么没有全部重写接口的还记的上面那个临时创建的实现类吗,他全部重写了接口方法,只是方法体是空的。我虽然只重写了部分方法,但是其他方法已经被临时类重写了只不过是空方法而已! -
关于匿名内部类的问题
2020-02-12 12:33:47我之前会有一个疑惑: 匿名内部类的格式: ...原来匿名内部类整体=父类的子类/接口的实现类 利用了多态性,创建了一个没有名字的类,就是因为没有名字才要借助父类/接口来完成定义。【它没有其他亲...我之前会有一个疑惑:
匿名内部类的格式:
new 父类/接口{
//重写父类/接口的方法
}
我看了这个我就奇了怪了,
new 不是创建对象吗?接口不是不能被实例化嘛?
父类自己都有run方法,干嘛还有重写?重写不是指重写自己的父类方法吗?
怎么回事?
原来匿名内部类整体=父类的子类/接口的实现类
利用了多态性,创建了一个没有名字的类,就是因为没有名字才要借助父类/接口来完成定义。【它没有其他亲人了】 -
Java基础:【匿名内部类】是什么?
2020-06-22 17:37:08接口的使用需要一个实现类的对象,有时候只需要使用一次,那么能不能跳过实现类的定义呢?同样的,一个父类的实现有时候也需要靠子类,这个子类的定义可以省略吗?接口的使用需要一个实现类的对象,有时候只需要使用一次,那么能不能跳过实现类的定义呢?同样的,一个父类的实现有时候也需要靠子类,这个子类的定义可以省略吗?
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代表创建对象的动作,接口名就是匿名内部类需要去实现的哪个接口的名称,{…}中是匿名内部类的内容,一般是对接口中所有抽象方法进行重写。注意事项:
- 匿名内部类在创建对象的时候,只能使用唯一一次,想要再创建个对象,得整套再写一遍【 接口名 对象名2=new 接口名{…}】来获得第二个对象。
- 匿名内部类还可以以匿名对象的形式使用,这时候只能调用一次方法,再想用method()方法时已经找不到这个对象了,因为它是匿名的。如下代码:
- 匿名内部类是省略了【实现类/子类名称】,而匿名对象是省略了【对象名称】(如第2点)
new MyInterface() { @Override public void method() { System.out.println("匿名内部类覆盖重写了抽象方法"); } }.method();
-
接口中可以有实现代码吗?
2017-03-23 09:37:08因为接口是一种契约,是一种框架性协议,这表明它的实现类都是同一种类型,或者说具备相似特征的一个集合体。然而对于一般的程序,接口确实没有任何实现,但是匿名内部类(或者内部类)呢?下面请看代码。 ... -
内部类
2018-04-05 16:08:061、什么是类?可以理解为一个对象。为啥需要对象?因为单身吗?因为我们需要对象去做一些事情2、啥是内部类?内部类就是在类的内部...使用匿名内部类我们必须要继承一个父类或者实现一个接口,当然也仅能只继承一个... -
-
Lambda表达式你会吗
2021-02-17 19:12:35臃肿的代码轻量化,实现逻辑突出化,可以取代大部分的匿名内部类,写出更优雅的Java代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。 举个简单栗子: //常规匿名写法 new Thread(new Runnable() {... -
java中接口是不能new的,当new一个接口的时候,
2016-03-06 11:08:07java中接口是不能new的,当new一个接口的时候,那么这个就是一个实现该接口的匿名类,这么理解正确吗 -
HanSon/vbot: 基于PHP7的微信个人号机器人,通过实现匿名函数可以方便地实现各种自定义的功能 yaphone/itchat4j: 用Java扩展个人微信号的能力 kanjielu/jeeves: 使用springboot开发的微信机器人 问题和建议 如果有...
-
拒绝iframe嵌套,ajax方式轻松实现单页面
2010-09-13 13:34:00这样做有很大弊端,其一是iframe经常会对弹出层造成遮挡(ie6下),其二是每个页面都有一个jsp页面(其实就是些js、css之类的引用)和js文件,维护起来很是不便;其三,iframe里的遮罩没法挡住整个屏幕区域。既然... -
Java面试题大全(Java基础十)
2016-09-29 16:48:2346、内部类可以引用它的外部类的成员吗?有没有什么限制?...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:0198、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101、如何优化Hibernate? 23 102、Struts工作机制?为什么要使用Struts? 23 ... -
千方百计笔试题大全
2011-11-30 21:58:3398、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101、如何优化Hibernate? 23 102、Struts工作机制?为什么要使用Struts? 23 ... -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它... -
Kotlin 协程学习
2020-08-12 20:51:521.1 Lambda表达式和匿名内部类的区别 注:Kotlin出现时,Java还在6/7,这也是为什么Kotlin从一开始就被提倡应用于Android开发的一个小小的原因(因为Java还没有Lambda表达式)。 在使用协程(以及很大一部分代码块)... -
JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)
2013-05-07 17:18:07基本信息 作者: 臧萌 ...12.2.4 使用接口仅需一步——实现接口 342 12.2.5 接口——让类集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 重温上节中的程序 349... -
Java入门1·2·3:一个老鸟的Java学习心得.PART2(共3个)
2013-05-07 17:19:14基本信息 作者: 臧萌 ...12.2.4 使用接口仅需一步——实现接口 342 12.2.5 接口——让类集多重类型于一身 344 12.2.6 简化recordTransport()方法 347 12.3 再探接口 349 12.3.1 重温上节中的程序 349... -
Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)
2013-05-07 17:20:12基本信息 作者: 臧萌 ...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接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它... -
java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心
2018-08-13 11:20:07【基础】Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口? 30 【基础】Java 中的final关键字有哪些用法? 31 【基础】内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制? 31 ... -
java基础题 很全面
2009-05-09 09:24:2468. 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等),同时还是机械、加工... -
Visual C++ 2008入门经典--源代码及课后练习答案
2013-02-02 16:13:25他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工... -
java面试题
2018-01-01 15:35:1571.8. Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 60 71.9. 说下Hibernate的缓存机制 60 71.10. Hibernate的查询方式 60 71.11. 如何优化Hibernate? 61 71.12. Hibernate和spring中常出现的几个...
收藏数
53
精华内容
21