標題:
匿名類別撰寫
[打印本頁]
作者:
周政輝
時間:
2018-3-24 11:59
標題:
匿名類別撰寫
當我們在撰寫抽象類別的時候,我們會需要建立子類別,並且透過繼承來去Override改寫抽象類別底下的方法。
但有時候我們這個抽象類別底下要做的事情,可能是一次性的。(也就是只有在這個地方會被使用到)
這時候如果我們額外為他建立一個類別,又顯得有點浪費
舉例來說,我們的Click事件,如果我們為我們的Listener裡面的類別,都獨立建立成為一個Class 那麼會發現會需要建立很多個檔案。
因此我們可以透過匿名類別的撰寫,來將抽象類別實體化,進而實作內部的方法。
也就是說,我們是建立一個沒有名字的類別,實做他底下的抽象方法。
Bird bird = new Bird(){
@Override
public void Eat() {
// TODO 自動產生的方法 Stub
System.out.println("我會吃飯");
}
@Override
public void Walk() {
// TODO 自動產生的方法 Stub
System.out.println("我會走路");
}
};
bird.Name = "我是麻雀";
bird.Eat();
bird.Walk();
}
複製代碼
作者:
蔡季樺
時間:
2018-3-24 12:00
package bbs.istak.org.tw;
public class Main {
public static void main(String[] args) {
Bird bird = new Bird()
{
@Override
public void Eat() {
// TODO 自動產生的方法 Stub
System.out.println("我會吃飯");
}
@Override
public void Walk() {
// TODO 自動產生的方法 Stub
System.out.println("我會走路");
}
};
bird.Eat();
bird.Walk();
}
}
複製代碼
作者:
黃茂勛
時間:
2018-3-24 12:00
package bbs.istak.org.tw;
public class Main {
public static void main(String[] args) {
Bird bird = new Bird(){
@Override
public void eat() {
System.out.println("我會吃飯");
}
@Override
public void walk() {
System.out.println("我會走路");
}
}; //匿名類別
bird.name = "麻雀";
bird.eat();
bird.walk();
}
}
複製代碼
作者:
陳泓瑜
時間:
2018-3-30 17:11
public class Main {
public static void main(String[] args) {
// TODO 自動產生的方法 Stub
Bird bird = new Bird()
{
@Override
public void Eat() {
// TODO 自動產生的方法 Stub
System.out.println("我會吃飯");
}
@Override
public void Walk() {
// TODO 自動產生的方法 Stub
System.out.println("我會走路");
}
};
bird.Eat();
bird.Walk();
}
}
複製代碼
作者:
林侑成
時間:
2018-4-2 18:57
package bird;
public class Asdf {
public static void main(String[] args) {
Bird bird = new Bird()
{
@Override
public void Eat() {
// TODO 自動產生的方法 Stub
System.out.println("我會吃飯");
}
@Override
public void Walk() {
// TODO 自動產生的方法 Stub
System.out.println("我會走路");
}
};
bird.Eat();
bird.Walk();
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2