目 
讯享网 录
匿名内部类是局部内部类的一种简化形式.本质上是一个对象,是实现了该接口或继承了该抽象类的子类对象.
语法格式: new 类名或者接口名(){ 重写方法; } ;
给匿名内部类名命: 虽然这是匿名内部类,但是仍然可以利用多态来给匿名内部类名命的哈!
匿名内部类的好处: 匿名内部类,经常作为参数,或返回值,使用比较方便。

一个类中可以嵌套一个接口:
匿名内部类是局部内部类的一种简化形式.本质上是一个对象,是实现了该接口或继承了该抽象类的子类对象.
语法格式:
new 类名或者接口名(){
重写方法;
} ;
public class MyTest { public static void main(String[] args) { new Father() { //new了一个父类抽象类的子类对象.匿名的 @Override //重写了父类中的抽象方法 public void hehe() { System.out.println("呵呵呵呵呵呵"); } }; //创建了父类的子类对象并且调用重写后的方法 new Father() { @Override public void hehe() { System.out.println("444"); } }.hehe(); } } abstract class Father { public abstract void hehe(); }
讯享网
给匿名内部类名命: 虽然这是匿名内部类,但是仍然可以利用多态来给匿名内部类名命的哈!
讯享网public class MyTest { public static void main(String[] args) { //匿名内部类 new AA() { @Override public void aa() { System.out.println("aaaaaaaaaaaaaaaa"); } @Override public void hehe() { System.out.println("hehehehehehhehehhe"); } }; //此时,要想用同一个对象调用多个方法时,就会很难办到.这个时候给匿名内部类名命就可以解决了! //利用多态进行名命 AA aa = new AA() { @Override public void aa() { System.out.println("aaaaaaaaaaaaaaaa"); } @Override public void hehe() { System.out.println("hehehehehehhehehhe"); } }; //这样就可以调用多个方法了 aa.aa(); aa.hehe(); } } abstract class AA { public abstract void aa(); public abstract void hehe(); }
匿名内部类的好处: 匿名内部类,经常作为参数,或返回值,使用比较方便。
public class MyTest { public static void main(String[] args) { //匿名内部类,经常作为参数,或返回值,使用比较方便。 test(new WW() { @Override public void hehe() { System.out.println(""); } }); } //方法的形参要一个抽象类类型,传递一个该抽象类的子类对象. public static void test(WW ww) { ww.hehe(); } } abstract class WW { public abstract void hehe(); }
讯享网public class MyTest { public static void main(String[] args) { BB bb = getBB(); bb.bb(); //匿名内部类,作为返回值,返回方便 } //方法的返回值是一个抽象类 类型,返回一个该抽象类的子类对象。 public static BB getBB2() { BB b2 = new BB() { @Override public void bb() { System.out.println("bbbbbbbbbbbbbbbbb"); } }; //匿名内部类,作为返回值,返回方便 return b2; } } abstract class BB { public abstract void bb(); }
一个类中可以嵌套一个接口:
public class MyTest2 { public static void main(String[] args) { new Inter() { public void show() { //this 代表匿名内部类 System.out.println(this.a); System.out.println(Inter.a); } }.show(); } } interface Inter { public static final int a = 23; }
(小编也在努力学习更多哟!以后会多多分享哒!) 
希望对友友们有所帮助!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/122069.html