abstract描述的類即是抽象類,描述的方法即是抽象方法。
被此關鍵字描述的類,不能直接例項化,需要匿名。
如果乙個類裡面包含抽象方法,則該類必須宣告為抽象類。
抽象方法沒有實現,子類如果不是抽象類,則必須實現父類的抽象方法。
以上差不多就是抽象類的概念和注意事項。
之前一直的理解就是,抽象類和介面的作用類似,都是用於規範和定義實現類的。
直到昨天才想到了抽象類的另外作用,是介面做不到的。
**如下:
publicabstract
class ct1
protected
abstract
void print();
}class ct2 extends ct1
@override
protected
void print()
}public
class cttest
}
這裡有三個類,執行cttest,我們可以看到結果如下:
ct1:class abstractclass.ct2
ct2:class abstractclass.ct2
注:「abstractclass」為我的包名
即是,ct1的無參建構函式已經被執行了,且,例項是它的子類。
事實上,我們可以認為,假如我們沒有在建構函式裡寫super構造,每乙個子類的建構函式裡面都在第一行預設呼叫了super();
利用這一點,我們就可以「強迫」子類做很多事情。
**如下:
publicabstract
class ct1
protected
abstract
void print();
}class ct2 extends ct1
ct2(string str)
@override
protected
void print()
}public
class cttest
}
執行結果如下:
ct2的print()方法被呼叫了
ct2的有參建構函式
結果清晰可見。
抽象類定義 為什麼要使用抽象類
為什麼要使用抽象類?有什麼好處?答案 1 現實中一些父類中的方法沒必要寫 各個子類中的方法會有所不同 所以沒必要在父類中寫 2 看被人 時候會注意這是抽象方法 會有個提示作用 3 當看到乙個類是抽象的,要關心他的抽象方法,因為他的子類一定會重寫他,然後去找抽象類的引用,會有多型性的體現 4 物件導向...
為什麼使用抽象類,什麼時候使用抽象類
假設有2個類,乙個類是主力球員,乙個類是替補球員。public class normalplayerpublic string firstnamepublic string lastnamepublic decimal weeksalarypublic string getfullname publ...
C 為什麼設計抽象類?
網上也有許多介紹,但我總覺得不能一針見血,根據自己工作實際中用到的,才知道有些時候真的是需要抽象類 先說一種場景 a設計了一項功能他把此功能封裝成乙個類,以類的方式提供,他要把這項功能提供給b c,我們理所當然的想到他會把原始碼或者編譯成的 庫 件給bc。現在在修改一下這個場景 如果 abc做的是同...