Java & 抽象類
阿新 • • 發佈:2018-01-18
必須 mob 是個 sta 函數 amp java log 需要 /*
抽象類:
抽象:籠統,模糊,看不懂!不具體。
特點:
1,方法只有聲明沒有實現時,該方法就是抽象方法,需要被abstract修飾。
抽象方法必須定義在抽象類中。該類必須也被abstract修飾。
2,抽象類不可以被實例化。為什麽?因為調用抽象方法沒意義。
3,抽象類必須有其子類覆蓋了所有的抽象方法後,該子類才可以實例化。
否則,這個子類還是抽象類。
1,抽象類中有構造函數嗎?
有,用於給子類對象進行初始化。
2,抽象類可以不定義抽象方法嗎?
可以的。 但是很少見,目的就是不讓該類創建對象。AWT的適配器對象就是這種類。
通常這個類中的方法有方法體,但是卻沒有內容。
abstract class Demo
{
void show1()
{}
void show2()
{}
}
3,抽象關鍵字不可以和那些關鍵字共存?
private 不行
static 不行
final 不行
4,抽象類和一般類的異同點。
相同點:
抽象類和一般類都是用來描述事物的,都在內部定了成員。
不同:
1,一般類有足夠的信息描述事物。
抽象類描述事物的信息有可能不足。
2,一般類中不能定義抽象方法,只能定非抽象方法。
抽象類中可定義抽象方法,同時也可以定義非抽象方法。
3,一般類可以被實例化。
抽象類不可以被實例化。
5,抽象類一定是個父類嗎?
是的。因為需要子類覆蓋其方法後才可以對子類實例化。
*/ abstractclass Demo { abstract /*抽象*/ void show(); } /* class DemoA extends Demo { void show() { System.out.println("demoa show"); } } class DemoB extends Demo { void show() { System.out.println("demob show"); } } */ abstract class 犬科 { abstract void 吼叫(); }class 狗 extends 犬科 { void 吼叫() { System.out.println("汪汪"); } } class 狼 extends 犬科 { void 吼叫() { System.out.println("嗷嗷"); } } class AbstractDemo { public static void main(String[] args) { System.out.println("Hello World!"); } }
Java & 抽象類