在ao開發中,經常會遇到類似的宣告:
ibasicmap pmap=new mapclass();
於是就會產生這種疑問,為什麼不這樣宣告呢?
mapclass pmap=new mapclass();
如果這樣宣告,將會編譯錯誤,不能通過類的全權名進行方法的呼叫,只能用介面例項來訪問。
這是因為class(如上例中mapclass)裡實現相關介面的方法, 屬性是以顯式介面的方式實現的。
舉個簡單的例子:
inte***ce izou
class person : izou
如果此時用
person p=new person();
就會產生編譯錯誤。
只能用
izou p=new person();
抽象類為什麼不能直接建立物件?
1.子類更具體,父類更抽象,直接建立父類物件本身沒有意義。2.如果建立的是父類物件再呼叫方法的時候,呼叫的父類中的方法,而非子類的方法,它違背了多型的這種思想和設計 3.因為父類引用指向子類物件時,呼叫的方法是子類重寫的方法,一般父類中的描述不夠具體,並不是說抽象類的構造方法沒有意義,那麼在建立子類...
為什麼要讓工具類不能被例項化
首先我們要知道,工具類是可以例項化的,只是沒有必要去例項化。定義 工具類是為了提供一些通用類的某一非業務領域內的公共方法,不需要配套的成員變數,僅僅是作為工具方法被使用。所以將它做成靜態方法最合適,不需要例項化,能夠獲取到方法的定義並呼叫就行。不例項化的原因 如果要例項化乙個工具類,就需要一定的記憶...
抽象類為什麼不能例項化(new)
抽象類為什麼不能例項化 new 答案是 規定。第一點 回歸問題最初,我們為什麼要例項化?我們先逆向思維來考慮,從物件導向的思想來看 我們需要完成實現乙個功能,而功能中的方法,是由物件來呼叫的,因此我們需要物件,因此我們需要例項化。那麼回歸本問題,什麼是抽象類?抽象 就是不具體的意思。類是對物件的具體...