java中匿名內部類總結,java匿名類總結

來源:互聯網
上載者:User

java中匿名內部類總結,java匿名類總結

 

在java的世界裡,提供了匿名內部類文法糖,用於協助大家簡化代碼,本文簡要從介面,抽象類別以及常規類以代碼的形式描述其常用模式。

 

 

1. 介面模式
public interface IWriter {    void  write();}public static void main(String[] args) {        IWriter writer = new IWriter() {            @Override            public void write() {                System.out.println("IWriter write...");            }        };        writer.write();}
2.抽象類別
public abstract class AbstractWriter {    public abstract void write();} public static void main(String[] args) {        AbstractWriter abstractWriter = new AbstractWriter() {            @Override            public void write() {                System.out.println("AbstractWriter write...");            }        };        abstractWriter.write();}

 

3.常規類
public class TextWriter implements IWriter {    @Override    public void write() {        System.out.print("text writer..");    }}public static void main(String[] args) {    TextWriter textWriter = new TextWriter() {        @Override        public void write() {            System.out.println("TextWriter 2 write...");        }    };    textWriter.write();}
4.線上程中使用
public static void main(String[] args) {    Thread thread = new Thread() {        @Override        public void run() {            new IWriter() {                @Override                public void write() {                    System.out.println("IWriter thread write...");                }            }.write();        }    };    thread.run();}

 

5.結語

綜上可以看出,其實不管是介面中,抽象類別,還是常規類派生出來的匿名內部類,其用法都是一樣的。之所以說這個是一個文法糖,其本質是編譯器在編譯的時候,將匿名內部類單獨編譯成不多個不同的class,這個和單獨寫實作類別後再調用其實本質是一樣,具體可以參見編譯後組建目錄.如下所示:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.