一道不錯的匿名內部類面試題
阿新 • • 發佈:2018-12-26
一、題目要求
按照要求補齊程式碼,並在控制檯輸出"HelloWorld"。
interface Inter {
void show();
}
class Outer {
//補齊程式碼
}
class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
}
}
二、題目詳解
interface Inter { void show(); //把隱藏修飾符加上之後相當於 public abstract void show(); } class Outer { //補齊程式碼 /* a、通過下面那三個分析可以寫出public static Inter method; b、由於介面返回的是子類(實現類)的物件,可以用子類匿名物件; c、new Inter() { public void show() { System.out.println("HelloWorld"); } } 這整體是一個子類物件; d、用Inter接收返回的子類物件。 */ //-----此題答案在兩線之間--------------- public static Inter method() { return new Inter() { public void show() { System.out.println("HelloWorld"); } }; } //-----此題答案在兩線之間--------------- } class OuterDemo { public static void main(String[] args) { Outer.method().show();//鏈式程式設計 /* 1、Outer.method()可以看出method()應該是Outer中的一個靜態方法; 2、method()還可以調方法,說明它有返回值,並且返回值是一個物件; 3、method()可以呼叫show()方法,說明返回值型別為Inter介面,因為只有Inter下面才是show()方法; */ } }