面向对象(匿名内部类重写多个方法调用)
生活随笔
收集整理的這篇文章主要介紹了
面向对象(匿名内部类重写多个方法调用)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
①匿名內(nèi)部類只針對重寫一個方法的時候使用;
②若有多個方法,通過匿名內(nèi)部類進行調(diào)用的時候,需要一個一個進行調(diào)用,比較麻煩,所以不建議使用。
③匿名內(nèi)部類是無法向下轉(zhuǎn)型的,向下轉(zhuǎn)型需要子類的類名,這里面沒有子類的類名,完全是通過父類去做的
package Demo_nimingneibulei;public class Demo2_NoName {public static void main(String[] args) {Outer2 wsq = new Outer2();wsq.method();}}interface Inter2{ //父類public void show1();public void show2(); }//匿名內(nèi)部類只針對重寫一個方法的時候使用 class Outer2 {public void method(){ //匿名內(nèi)部類要寫到方法里/* //若有多個方法,用匿名內(nèi)部類去調(diào)用,需要調(diào)用多次,比較麻煩new Inter2(){public void show1(){System.out.println("show1");}public void show2(){System.out.println("show2");}}.show1();new Inter2(){public void show1(){System.out.println("show1");}public void show2(){System.out.println("show2");}}.show2();若有多個方法,通過匿名內(nèi)部類進行調(diào)用的時候,需要一個一個進行調(diào)用*/Inter2 i = new Inter2(){ //從 new開始到; 全部都是子類對象; 父類引用指向子類對象,new Inner2(){...}; 整塊代表子類對象public void show1(){ //子類對象中的show1方法System.out.println("show1");}public void show2(){ //子類對象中的show2方法System.out.println("show2");}public void show3(){ //在子類對象里面,又重新定義一個自己特有的方法show3()System.out.println("show3");}};i.show1(); //編譯看的是接口中的show1方法,接口中有show1方法,編譯成功,程序繼續(xù)進行,運行看的是子類對象里面的show1方法i.show2(); //編譯看的是接口中的show2方法,接口中有show2方法,編譯成功,程序繼續(xù)進行,運行看的是子類對象里面的show1方法// i.show3(); //編譯錯誤,編譯看的是父類,是接口里面,而接口里面并沒有show3方法,所以編譯錯誤,程序報錯 //匿名內(nèi)部類是無法向下轉(zhuǎn)型的,向下轉(zhuǎn)型需要子類的類名,這里面沒有子類的類名,完全是通過父類去做的} }總結
以上是生活随笔為你收集整理的面向对象(匿名内部类重写多个方法调用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向对象(匿名内部类与有名字内部类的比较
- 下一篇: C——整除的尾数