手机影视网站制作,网站设计与管理,网站源代码怎么下载,青岛网站建设公司有哪些A:匿名内部类 就是内部类的简化写法B:前提 这里的类可以是具体类也可以是抽象类C#xff1a;格式 new 类名或者接口(){ //表示继承这个类或实现这个接口重写方法}D#xff1a;本质是什么呢#xff1f; 是一个继承了该类或者实现了该接口的子类匿名对象E#xff1a;案…A:匿名内部类 就是内部类的简化写法B:前提 这里的类可以是具体类也可以是抽象类C格式 new 类名或者接口(){ //表示继承这个类或实现这个接口重写方法}D本质是什么呢 是一个继承了该类或者实现了该接口的子类匿名对象E案例实现
按要求来写一个匿名内部类与一个有名字的内部类进行对比要求创建一个Inter接口接口里面有个抽象方法printprint这个抽象方法有个输出语句输出 print 然后分别用 **有名字的内部类** 跟 **匿名内部类** 这两种方式去实现。一有名字的内部类(Outer)
package Demo_nimingneibulei;public class hasming {public static void main(String[] args) {Outer o new Outer(); //创建对象o.method(); //调用method()方法}}interface Inter{ //定义接口public void print(); //接口里面有一个print抽象方法
}class Outer{ //有名字的内部类去实现了Inter这个接口然后重写Inter接口里面抽象方法printclass Inner implements Inter{ //创建Inner这个类去实现Inter接口Inner就是Inter的子类public void print(){ //重写Inter接口里面的方法System.out.println(print);}}public void method(){
① Inner i new Inner();i.print();② new Inner().print(); //new Inner() 代表着Inter的子类对象然后 .print() 再调用Inner里面重写之后的print()方法
//①②两种方法是一样的想过②是①的另外一种形式
// new Inter(); //创建Inter对象是错误的因为Inter是抽象的无法去实例化}
}
二匿名内部类(Outer1)
package Demo_nimingneibulei;import Demo_nimingneibulei.Outer.Inner;public class Noname {public static void main(String[] args) {Outer1 o new Outer1(); //创建Outer1该类的对象oo.method(); //调用Outer1里面的method方法}
}interface Inter1 {public void print();
}class Outer1{ //创建匿名内部类public void method(){ //匿名内部类是局部内部类的一种所以必须写在方法里面// new Inter(); //直接创建Inter对象不能这样写因为Inter1是个接口是抽象的无法实例化new Inter1(){ //实现Inter接口实现接口必须重写Inter1接口里面的抽象方法print()public void print(){ //重写Inter接口里面的print抽象方法System.out.println(print);}}.print(); //.之前的内容代表在Inter1这个接口的子类对象然后我们就可以调用Inter1这个接口的子类对象里面的方法了直接.print(),去调用该方法}
//匿名内部类与有名字的内部类相比不用再写一个类名去实现接口或者去继承类了
}