匿名內部類的使用
匿名內部類的使用
首先先搞定什麼事匿名內部類
顧名思義,匿名內部類就是省去命名的類
上程式碼
public static void main(String[] args)
{
new fulei()
{
void test2()
{
System.out.println("內部類2");
}
}.test2();//此處是test1的話結果是內部類1,是test2的話結果是內部類2
}
class fulei
{
void test1()
{
System.out.println("內部類1");
}
}
省去了類的命名
但是在工作中如何使用
上程式碼
/*
* 匿名內部類的使用方法:當需要對父類的方法進行復寫時所用的,特點是內部類的方法儘可能少,一般就是隻有一個
* 弊端:如果想多次呼叫的話就得重複的寫匿名內部類。
* 格式:new 父類(){方法體}.方法名字
* 作用:簡單容易寫,不用再給子類起名字了,所謂匿名,就是匿名建立了一個子類物件。
*/
public class Neibulei {
public static void main(String[] args)
{
PersonDemo pd = new PersonDemo ();
pd.method(new Student(){
public void show() {
System.out.println("show-1");
}
});
pd.method(new Person() {//匿名內部類在開發中當做引數傳遞
public void show() {
System.out.println("show");
}
});
}
}
class fulei
{
void test1()
{
System.out.println("內部類1");
}
}
abstract class Person {
public abstract void show();
}
class PersonDemo {
public void method(Person p) {//Person p = new Student(); //父類引用指向子類物件
p.show();
}
}
class Student extends Person {
public void show() {
System.out.println("students show");
}
}
理解容易,但是在工作中使用,還要分析具體情況,但是匿名內部類的使用會讓程式碼顯得冗餘,可以使用java8新特性lamda表示式來寫。但是會造成程式碼晦澀難懂 且不規範。
相關文章
- 匿名內部類
- Java內部類詳解--匿名內部類Java
- 匿名內部類理解
- Java類與匿名內部類Java
- java內部類,區域性內部類,靜態內部類,匿名內部類Java
- Java中的匿名內部類及內部類的二三事Java
- 10-Java內部類——成員內部類、區域性內部類、匿名內部類Java
- java培訓教程:什麼是匿名內部類?怎樣建立匿名內部類?Java
- 內部類是什麼?匿名內部類又是什麼?
- java匿名內部類:“ 儂好,世界”Java
- 匿名內部類中關於new Runnable ( )
- Java_介面回撥與匿名內部類Java
- Java之區域性匿名內部類物件Java物件
- 匿名內部類方式實現執行緒的建立執行緒
- 用匿名內部類實現 Java 同步回撥Java
- 關於java匿名內部類初始化法Java
- scala_繼承、型別判斷、抽象類、匿名內部類繼承型別抽象
- lambda表示式在oj中會比匿名內部類慢
- [短文速讀-3] 內部匿名類使用外部變數為什麼要加final變數
- 匿名內部類方式構建物件導致序列化失敗物件
- 內部類與靜態內部類
- Java 內部類使用詳解Java
- 內部類
- Java內部類詳解-- 成員內部類Java
- java內部類,為什麼需要內部類?Java
- Java內部類詳解--區域性內部類Java
- java中的內部類Java
- 內部類中的成員的定義和使用
- Java內部類Java
- Java 內部類Java
- 內部類與外部類
- Java基礎內部類4-內部類進階Java
- Java 的抽象類, 介面以及內部類Java抽象
- Lambda對比匿名內部類,Lambda是什麼,Lambda該怎麼用,Lambda使用過程中有什麼需要注意的?
- 內部類,Object,字串Object字串
- 10、Java——內部類Java
- 內部類解說
- 泛型,內部類泛型