首页 > 编程语言 > 详细

[20-05-17][Thinking in Java 22]Java Inner Class 6 - Anonymous Inner Class 1

时间:2020-05-17 15:33:51      阅读:41      评论:0      收藏:0      [点我收藏+]
1 package test_15_1;
2 
3 public interface Contents {
4 
5     int value();
6 }

 

 1 package test_15_1;
 2 
 3 public class Wrapping {
 4 
 5     private int i;
 6 
 7     public Wrapping(int x) {
 8         i = x;
 9     }
10 
11     public int value() {
12         return i;
13     }
14 }

 

 1 package test_15_1;
 2 
 3 public class Outer {
 4 
 5     public Contents contents() {
 6         // 创建一个继承自Contents的匿名类的对象,通过new表达式返回的引用被自动向上转型为Contents的引用
 7         return new Contents() {
 8             private int i = 1;
 9             
10             @Override
11             public int value() {
12                 return i;
13             }
14         }; // 必须有分号,表示return表达式结束
15     }
16 
17     public Wrapping wrapping(int x) {
18         // 如果需要一个带参的构造器,只需要传递适当的参数给基类的构造器即可
19         // 尽管Wrapping只是一个具有具体实现的普通类,但还是能被导出类当作公共“接口”使用
20         return new Wrapping(x) {
21 
22             @Override
23             public int value() {
24                 return super.value() * 100;
25             }
26         };
27     }
28 
29     public static void main(String[] args) {
30         Outer o = new Outer();
31         Contents c = o.contents();
32         Wrapping w = o.wrapping(10);
33 
34         System.out.println(c.value());
35         System.out.println(w.value());
36     }
37 }

 

[20-05-17][Thinking in Java 22]Java Inner Class 6 - Anonymous Inner Class 1

原文:https://www.cnblogs.com/mirai3usi9/p/12905290.html

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