大家好,欢迎来到IT知识分享网。
1.1. 匿名内部类
1.1.1. 书写格式
class A{}:表示定义一个A类
new A():表示创建A类的一个对象
new A(){}:表示创建A类的一个匿名子类的对象,后面大括号中的内容,就是匿名子类中的内容;
interface Inter{}:表示创建了一个接口Inter
new Inter(){}:表示创建了接口Inter的一个匿名实现类的对象,后面大括号中的内容,就是匿名实现类中的内容;
1.1.2. 演示代码
1.1.3. 使用场景
当要使用一个类的子类(或接口的实现类)时,如果这个子类只会使用一次,就没必要专门定义一个类出来,可以使用匿名内部类的方式调用;
问题:补足下面的代码:
interface Inter{
public void test();
}
class Demo2 {
public static void useInter(Inter inter){
inter.test();
}
public static void main(String[] args) {
//调用useInter函数,在控制台输出 “Hello,World!”
}
}
原来的做法:
//问题:补足下面的代码:
interface Inter{
public void test();
}
class InterImpl implements Inter{
public void test() {
System.out.println(“Hello,World!”);
}
}
public class NoNameDemo2 {
public static void useInter(Inter inter){
inter.test();
}
public static void main(String[] args) {
//调用useInter函数,在控制台输出 “Hello,World!”
useInter(new InterImpl());
}
}
问题:我们为了解决上面的需求,手动创建了Inter接口的一个实现类。这个实现类仅仅只是在这里使用一次,专门创建一个类,有点麻烦。
新的做法:使用匿名内部类:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/161196.html