package test;
public class test
@override
public void breath()
};//是new了乙個物件,但不是new了乙個抽象類的物件,建立了乙個匿名(這個類沒有名)子類(是person的子類)物件,物件名為p
method1(p);//會呼叫物件重寫的方法,還涉及到了多型的使用
//造匿名子類的匿名物件
method1(new person()
@override
public void breath()
});}
public static void method1(person p)
}abstract class person
public person(string name,int age)
public abstract void eat();
public abstract void breath();
public void walk()
}class worker extends person
@override
public void breath()
}
如果不想用匿名子類的,可以顯示的給抽象類提供子類 scala中的匿名子類實現
引入 當我們對乙個實現了抽象類的子類我們只需要呼叫一次的時候我們可以直接使用匿名類一.我們得明白如何宣告乙個抽象類,抽象方法,抽象屬性1.使用abstract來宣告乙個抽象類 2.不對屬性進行初始化賦值,就是申明乙個抽象屬性 3.不寫方法體就是在宣告乙個抽象方法 二.我們得明白如何定義乙個匿名子類1...
抽象類通過子類被例項化
抽象類其實是可以被例項化的,但是它的例項化方式並不是通過普通的new方式來建立物件,而是通過父類的應用來指向子類的例項間接地實現父類的例項化,因為子類在例項化之前,一定會先例項化它的父類。這樣建立了繼承抽象類的子類物件,也就把其父類 抽象類 給例項化了。注意 介面與抽象類非常類似,但是它不可以被例項...
父類 抽象類 介面 匿名內部類
父類 抽象類 介面常常搞混,到最後分不清楚他們出現的原因,以及使用的場景,下面來解密。當我們多個類中存在共同的方法的時候,把共同方法抽象出來放到父類中,然後再把這種特徵從父類中繼承下來。這樣符合我們物件導向的本質,根據現實世界的本質來設計的語言。寵物類class pet 狗類class dog ex...