1 一個抽象類里可以沒有抽象方法,但含有抽象方法的類必定為抽象類; 2 抽象類不能被實例化為對象,而只能作為其它類的超類,並且必須被繼承; 3 若某子類繼承自一個抽象類,而該子類不是抽象類,則子類需用覆蓋的方式來實例化超類中的所有抽象類方法。
抽象方法可再與public、protect復合使用,但不能與final、private和static復合使用; 4 抽象方法只有方法聲明,不能有方法體。
1.抽象方法:
使用abstract修飾,的方法,沒有方法體,只有聲明。定義的是一種“規范”,就是告訴子類必須要給抽象方法提供具體的實現
2.抽象類:
包含抽象方法的類就是抽象類。通過abstract定義規范,然后要求子類必須定義具體實現,通過抽象類,我們就可以,嚴格限制子類的設計,使的子類之間更加通用
3.基本用法:
public abstract class _01_Abstract{ //1.沒有實現 //2.子類必須實現 abstract public void shout(); public void run(){ System.out.println("4565482 454"); } } class Dog extends _01_Abstract{ @Override //父類中有shout方法,所以限制子類必須有,至於方法體中有什么與父類無關 public void shout() { // TODO Auto-generated method stub System.out.println("___++++++___"); } }
4.使用要點:
1 在抽象方法的類只能定義成抽象類; 2 抽象類不能實例化,即不能用new來實例化對象; 3 抽象類可以以包含屬性、方法、構造方法。但是構造方法不能用來new實例,只能被子類調用; 4 抽象類只能用來被繼承; 5 抽象方法必須被子類實現。