看下面的程序:
abstract class Sequare{
abstract int sequare(int i); //抽象的方法
}
class Sqart extends Sequare{
int sequare(int i){
return i*i;
}
}
class AbstractDemo{
public static void main(String args[]){
Sqart sqrt = new Sqart();
System.out.println("5 is:"+sqrt.sequare(5));
}
}
正如我們看到的注釋一樣sequare()是抽象的,它的類Sequare也必須是抽象的。那么也就是說繼承它的類Sqart必須實現sequare()
如果不這樣做,會引起程序的編譯錯誤。
抽象類可能沒有對象,也就是說它不可能用New運算符直接創建對象實例。這點很容易理解。因為一個抽象類沒有被完全定義,
所以這種對象是無用的。也不能聲明抽象構造函數或者抽象的靜態方法。任何一個抽象類的子類一定是實現了超類中的全部抽象
方法或把自己聲明為抽象。