生活随笔
收集整理的這篇文章主要介紹了
匿名内部类基本语法与使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
匿名內部類:是局部內部類一種最簡形式;
匿名內部類的本質:本質上一個對象,是實現了該接口,或繼承了該抽象類的子類對象。
下面先來看普通的創建對象,再調用Anonymity類的成員方法;在抽象類或者不能創建其對象,就可以通過創建匿名內部類調用。
public class Testnull {public static void main(String
[] args
) {new Anonymity(){ @Override
public void show() {super
.show();}}.show();System
.out
.println("--------------------------------");Anonymity anonymity
=new Anonymity(){@Override
public void show() {super
.show();}};anonymity
.show();}
}
class Anonymity{int num
=333;public void show(){System
.out
.println("這是一個show方法!");}}
下面來看抽象類怎么在主函數中創建對象,即可以通過匿名內部類的方法實現:
public class Test {public static void main(String
[] args
) {new Demo(){@Override
public void show() {System
.out
.println("這是個抽象show方法。");}@Override
public void show2() {System
.out
.println("這是個抽象show2方法。");}}.show();System
.out
.println("--------------------------------------");Demo demo
= new Demo(){ @Override
public void show() {System
.out
.println("這是個抽象show方法");}@Override
public void show2() {System
.out
.println("這是個抽象show2方法");}};demo
.show(); demo
.show2();}
}
abstract
class Demo{public abstract
void show();public abstract
void show2();public void show3(){ System
.out
.println("這是個show3方法。");}
}
同樣接口類的實現也可以利用同樣的方式實現對象的創建;
public class Test {public static void main(String
[] args
) {Mydemo mydemo
= new Mydemo(){@Override
public void test1() {System
.out
.println("重寫過后的test1方法");}@Override
public void test2() {System
.out
.println("重寫過后的test2方法");}};}}
interface Mydemo
{public abstract
void test1();public abstract
void test2();public default void test3(){System
.out
.println("這是一個test3方法");}
}
總結
以上是生活随笔為你收集整理的匿名内部类基本语法与使用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。