A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© MichaelLian 中级黑马   /  2016-4-13 23:14  /  341 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Demo_AnonymousInnerClass02 {
  2.         public static void main(String[] args) {
  3.                 Outer o=new Outer();
  4.                 o.method();
  5.         }
  6. }

  7. interface Inter{
  8.         public abstract void print01();
  9.         public abstract void print02();
  10. }

  11. class Outer{
  12.         public void method(){
  13.                         // Inter i=new Inner();
  14.                         // i.print();
  15. //匿名内部类只适合重写一个方法时使用,复用性太差;
  16.                 new Inter(){
  17.                         public void print01(){
  18.                                 System.out.println("Anonymous Inner Class realise interface 01!");
  19.                         }
  20.                         public void print02(){
  21.                                 System.out.println("Anonymous Inner Class realise interface 02!");
  22.                         }
  23.                 }.print01();

  24.                 new Inter(){
  25.                         public void print01(){
  26.                                 System.out.println("Anonymous Inner Class realise interface 02!");
  27.                         }
  28.                         public void print02(){
  29.                                 System.out.println("Anonymous Inner Class realise interface 02!");
  30.                         }
  31.                 }.print02();
  32. //父类引用指向子类对象方法实现
  33.                 Inter i= new Inter(){
  34.                         public void print01(){
  35.                                 System.out.println("Anonymous Inner Class realise interface 01!");
  36.                         }
  37.                         public void print02(){
  38.                                 System.out.println("Anonymous Inner Class realise interface 02!");
  39.                         }

  40.                         public void print03(){
  41.                                 System.out.println("Anonymous Inner Class realise interface 02!");
  42.                         }
  43.                 };                                //不能少分号
  44.                 i.print01();
  45.                 i.print02();
  46.                 //i.print03(); //此方法是子类的特有方法,编译看父类而出错,这是本方法的弊端
  47.         }
  48. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马