首页 > 其他 > 详细

匿名内部类

时间:2019-06-13 09:54:11      阅读:107      评论:0      收藏:0      [点我收藏+]
  1 package InnerClass;
  2 
  3 
  4 
  5 /**
  6  * 匿名内部类
  7  * @author SiyyaWu
  8  */
  9 public class AnonymousInnerClass {
 10 
 11     public static void main(String[] args) {
 12         // TODO Auto-generated method stub
 13     }
 14     
 15     
 16     /**
 17      * 匿名内部类简化写法
 18      * @author SiyyaWu
 19      * @param x
 20      * @return
 21      */
 22     public Contents1 contents(final int x){
 23         return new Contents1(){
 24             public int value(){
 25                 return super.value()*x;
 26             }
 27             @Override
 28             public void run() {
 29                 // TODO Auto-generated method stub
 30                 System.out.println("抽象方法");
 31             }
 32         };
 33     }
 34     
 35     /**
 36      * 匿名内部类完整写法
 37      * @author SiyyaWu
 38      */
 39     public class MyContents extends Contents1{
 40         private int x;
 41         public MyContents(int x){
 42             this.x=x;
 43         }
 44         public int value(){
 45             return super.value()*x;
 46         }
 47         @Override
 48         public void run() {
 49             // TODO Auto-generated method stub
 50             System.out.println("抽象方法");
 51         }
 52     }
 53     
 54     public Contents1 contentsAll(int x){
 55         return new MyContents(x);
 56     }
 57     
 58     /**
 59      * 匿名内部类正常写法
 60      * @author SiyyaWu
 61      */
 62     class Contents2Impl implements Contents2{
 63 
 64         @Override
 65         public int value() {
 66             // TODO Auto-generated method stub
 67             return 5;
 68         }
 69     }
 70         public Contents2 contents2All(){
 71             return new Contents2Impl();
 72         }
 73     
 74     /**
 75      * 匿名内部类的简化写法
 76      * @author SiyyaWu
 77      * @return
 78      */
 79     public Contents2 contents2(){
 80         return new Contents2() {
 81 
 82             @Override
 83             public int value() {
 84                 // TODO Auto-generated method stub
 85                 return 5;
 86             }
 87             
 88         };
 89     }
 90 }
 91 
 92 /**
 93  * 抽象类
 94  * @author SiyyaWu
 95  */
 96 abstract class Contents1{
 97     public int i=2;
 98     public int value(){
 99         return i;
100     }
101     public abstract void run();
102 }
103 
104 
105 /**
106  * 接口
107  * @author SiyyaWu
108  */
109 interface Contents2{
110     public int value();
111 }

 

匿名内部类

原文:https://www.cnblogs.com/siyyawu/p/11013828.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!