1. 程式人生 > >一道不錯的匿名內部類面試題

一道不錯的匿名內部類面試題

一、題目要求

        按照要求補齊程式碼,並在控制檯輸出"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()方法;
		*/
	}
}