No1 匿名內部類

2021-09-30 19:05:24 字數 1016 閱讀 2381

知識點:

介面、抽象類、匿名內部類之間的關係。

具體內容:

為什麼需要存在匿名內部類。觀察如下**:

package 比較器;

inte***ce message

package 比較器;

public class messageimpl implements message

}package 比較器;

public class testdemo

public static void fun(message msg)

}

正常的規律就是乙個介面或則抽象類需要有子類,子類要覆寫所有的抽象方法。

當現在的messageimpl子類只需要使用唯一一次時,那麼再整乙個類就比較浪費,至少浪費了乙個messageimpl名字.所以這個時候就可以採用匿名內部類的方式進行**的簡化.

package 比較器;

public class testdemo

public static void fun(message msg)

}package 比較器;

public class testdemo

});} public static void fun(message msg)

}

匿名內部類:

fun(new message()

});相當與它直接把messageimpl類名字去掉,直接放到了這裡,沒了名字自然就匿名了,在方法裡面可能就內部了把。

使用匿名內部類有乙個前提:必須基於介面或則抽象類,因為介面和抽象類都是要覆寫方法的嘛,這個很好理解。

但是需要強調的是,匿名內部類如果定義在了方法裡面,方法的引數或則是變數要被匿名內部類所訪問,那麼必須加上final關鍵字。此要求在jdk1.8被要求改變。

總結:作用就是幫助使用者減少了類的定義。

內部類,匿名內部類

內部類 概念 自己想到的 內部類是一種可以直接訪問外部類的一類事物 內部類訪問外部類中的成員,包括私有。之所以可以訪問外部類的成員,是因為內部類持有了外部類的乙個引用,格式為 outer.this.x 外部類訪問內部類成員,需要宣告內部類的物件。其他類訪問內部類方法 當內部類處在成員變數的位置時,就...

內部類 匿名內部類

把類定義在其他類的內部,這個類就叫內部類。內部類分為 成員內部類 區域性內部類。內部類訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類訪問內部類的成員,必須建立物件。區域性內部類是定義在乙個方法或者乙個作用域裡面的類。public class outer 在區域性位置建立內部類物件,調內部...

內部類 匿名內部類

package org.lgy.study.innerclass public class anonymoustest public static void main string args public string getname public double getprice inte ce p...