java基础之匿名内部类
生活随笔
收集整理的這篇文章主要介紹了
java基础之匿名内部类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
內部類:
概述: 類里邊還有一個類, 里邊那個類叫內部類, 外邊那個類叫外部類.
分類:
成員內部類: 定義在成員位置的內部類.
局部內部類: 定義在局部位置的內部類.
格式:
new 類名或者接口名(){
//重寫類或者接口中 所有的 抽象方法;
};
本質:
就是一個繼承了類或者實現了接口的 匿名的子類對象.?匿名內部類不是類, 而是子類對象.
匿名內部類的實際應用:
1) 當對 對象方法(成員方法) 僅調用一次的時候.
2) 可以作為方法的實參進行傳遞.
建議:
當接口中或者抽象類中的 抽象方法僅有一個的時候, 就可以 考慮使用匿名內部類.
?
代碼說明:
public class DemoClass { //外部類 String name; //成員變量class Inner1 { //成員內部類 }//成員方法public void show() {int num = 10; //局部變量, 基本類型 Object obj = new Object(); //局部變量, 引用類型//局部內部類. 局部變量, 引用類型class Inner2{}} }?
應用舉例:
public static void main(String[] args) { // 對, Jumpping#jump(); 調三次. //1) 當對 對象方法(成員方法) 僅調用一次的時候. Jumping jm = new Jumping() { //多態 @Override public void jump() { System.out.println("我會跳"); } }; jm.jump(); jm.jump(); jm.jump(); //2) 可以作為方法的實參進行傳遞. show(new Jumping() { @Override public void jump() { System.out.println("我會跳, 可以作為方法的實參進行傳遞"); } }); } public static void show(Jumping jm) { jm.jump(); } public interface Jumping {final public static int num = 10;public abstract void jump(); }?
public static void main(String[] args) { /* * 通過匿名內部類實現. * new 類名或者接口名(){ //重寫類或者接口中 所有的 抽象方法; }; */ new Animal() { public void eat() { System.out.println("我是匿名內部類的方式實現的, 貓吃魚"); } }.eat(); } /*** 抽象類: Animal* @author**/ public abstract class Animal {public abstract void eat(); }轉載于:https://www.cnblogs.com/blazeZzz/p/9153747.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java基础之匿名内部类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《软件工程》课之-调查问卷的心得体会
- 下一篇: Redux API之applyMiddl