abstract抽象的
注意:抽象類有構造方法但是不可以實例化!
因爲,抽象類本身就是爲繼承而存在的,設計者的初衷就是將一類事物抽象出共同特徵,然後封裝成一個類。但是,我們可以通過抽象父類的引用調用非抽象子類的對象間接實例化。
例子:
public class abstractTest extends bB{
public abstractTest(String str) {
super(str);
System.out.println("子類已經被實例化");
}
public static void main(String[] args) throws Exception {
bB s = new abstractTest("hello world");
}
}
abstract class bB{
String str;
public bB(String str) {
System.out.println("父類已經被實例化");
this.str = str;
System.out.println(str);
}
}
結果:
父類已經被實例化
hello world
子類已經被實例化
1、抽象類可以有抽象方法,也可以沒有抽象方法;有抽象方法的類必須爲抽象類。
2、沒有抽象的構造方法,也沒有抽象的靜態方法。抽象的構造方法:類中的構造方法用來new對象的,構造方法如果被抽象了,那類還有什麼意義,面向對象編程也無從說起。抽象的靜態方法:靜態資源提前加載,可用類名調用,抽象的靜態方法是一個空的方法,沒意義。但抽象類中是可以有靜態方法的。