本文通過一個例題來加深對匿名内部類的認識
題目:
<code>package</code> <code>面向對象;</code>
<code>interface</code> <code>In</code>
<code>{</code>
<code> </code><code>void</code> <code>method();</code>
<code>}</code>
<code>class</code> <code>Test</code>
<code> </code><code>//補足代碼,通過匿名内部類</code>
<code> </code>
<code>public</code> <code>class</code> <code>UnknownNameClass {</code>
<code> </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>
<code> </code><code>Test.function().method();</code>
<code> </code><code>}</code>
分析這句話Test.function().method();
在Test類中有一個靜态的方法function()無參,傳回值先不确定,且這個方法會調用method方法,說明function的傳回值是一個可以調用method方法的對象,那麼就是In的子類。在function應該傳回In的一個匿名子類對象。
補充代碼如下:
<code>public</code> <code>static</code> <code>In function()</code>
<code> </code><code>{</code>
<code> </code><code>return</code> <code>new</code> <code>In()</code>
<code> </code><code>{</code>
<code> </code><code>public</code> <code>void</code> <code>method() {</code>
<code> </code><code>// TODO Auto-generated method stub</code>
<code> </code>
<code> </code><code>}</code>
<code> </code><code>};</code>
向上向下,正向逆向推理思想是程式設計中十分的必要,需要加強練習。
本文轉自屠夫章哥 51CTO部落格,原文連結:http://blog.51cto.com/4259297/1656474,如需轉載請自行聯系原作者