摘要:中的匿名內部類總結實例不使用匿名內部類來實現抽象方法運行結果可以看到,我們用繼承了類,然后實現了的一個實例,將其向上轉型為類的引用但是,如果此處的類只使用一次,那么將其編寫為獨立的一個類豈不是很麻煩這個時候就引入了匿名內部類實例匿名內部類的
java中的匿名內部類總結
實例1:不使用匿名內部類來實現抽象方法
abstract class Person { public abstract void eat(); } class Child extends Person { public void eat() { System.out.println("eat something"); } } public class Demo { public static void main(String[] args) { Person p = new Child(); p.eat(); } }
運行結果:eat something
可以看到,我們用Child繼承了Person類,然后實現了Child的一個實例,將其向上轉型為Person類的引用
但是,如果此處的Child類只使用一次,那么將其編寫為獨立的一個類豈不是很麻煩?
這個時候就引入了匿名內部類
實例2:匿名內部類的基本實現
abstract class Person { public abstract void eat(); } public class Demo { public static void main(String[] args) { Person p = new Person() { public void eat() { System.out.println("eat something"); } }; p.eat(); } }
運行結果:eat something
可以看到,我們直接將抽象類Person中的方法在大括號中實現了
這樣便可以省略一個類的書寫
并且,匿名內部類還能用于接口上
實例3:在接口上使用匿名內部類
interface Person { public void eat(); } public class Demo { public static void main(String[] args) { Person p = new Person() { public void eat() { System.out.println("eat something"); } }; p.eat(); } }
運行結果:eat something
由上面的例子可以看出,只要一個類是抽象的或是一個接口,那么其子類中的方法都可以使用匿名內部類來實現
最常用的情況就是在多線程的實現上,因為要實現多線程必須繼承Thread類或是繼承Runnable接口
實例4:Thread類的匿名內部類實現
public class Demo { public static void main(String[] args) { Thread t = new Thread() { public void run() { for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } } }; t.start(); } } 運行結果:1 2 3 4 5
實例5:Runnable接口的匿名內部類實現
public class Demo { public static void main(String[] args) { Runnable r = new Runnable() { public void run() { for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } } }; Thread t = new Thread(r); t.start(); } }
運行結果:1 2 3 4 5
注明:摘選自博客:http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65927.html
摘要:方法內部類就是局部內部類,一般定義在類的局部位置,它可以訪問當前代碼塊及外部類的所有變量。 今天溫習一下 Java 中的內部類,內部類一般有如下幾種:靜態內部類、成員內部類、匿名內部類和方法內部類,下文中將主要介紹靜態內部類和成員內部類,主要內容如下: 概述 靜態內部類 成員內部類 匿名內部類和方法內部類 總結 概述 顧名思義內部類就是在一個類內部定義的類,它是內部類是一個獨立的類...
摘要:對于一個名為的外圍類和一個的內部類,在編譯成功后,會出現這樣兩個文件和。 Java知識點總結(三個步驟) @(Java知識點總結)[Java, Java面向對象] [toc] 1-定義類 修飾符 訪問修飾符: public protected default private 其他修飾符 abstract:抽象類不能實例化,專門用于繼承的類final:最終類不能被繼承 類名(駝峰命名...
摘要:要注意的是,成員內部類不能含有的變量和方法。匿名內部類是唯一一種沒有構造器的類。靜態嵌套類又叫靜態局部類嵌套內部類,就是修飾為的內部類。以上是對內部類的一些學習和總結,紕漏之處希望各位小伙伴友情指點,共同進步。 內部類(inner class)是定義在另一個類中的類,類名不需要和文件夾相同。但為什么要使用內部類呢?其主要原因有以下三點: 1.內部類方法可以訪問該類定義所在的作用域中的...
閱讀 2628·2021-11-23 09:51
閱讀 2418·2021-09-30 09:48
閱讀 2044·2021-09-22 15:24
閱讀 1009·2021-09-06 15:02
閱讀 3303·2021-08-17 10:14
閱讀 1934·2021-07-30 18:50
閱讀 1980·2019-08-30 15:53
閱讀 3168·2019-08-29 18:43