我們在實現介面時,常常是類繼承介面,然後在介面中實現相應的方法。**如下:
inte***ce ioutput
class ******output : ioutput
}
class program
}
使用**測試一下實現的結果
可以看到繼承介面的類s的輸出s.output和介面i的輸出i.output是一樣的結果。
這是很常見的介面實現方式。那如果我們這樣實現呢?看下面的**:
inte***ce ioutput
class ******output : ioutput
void ioutput.output()
}
******output繼承了ioutput,同時實現了output和ioutput.output的方法,那這會有什麼不同呢?
我們使用同樣的測試**,來看一結果
從結果中可以看到,繼承介面的s的輸出s.output和介面i的輸出i.output不一樣了。
s.output輸出的是******output中的output方法,而i.output輸出的是ioutput.output的方法。那這是為什麼呢?
這其實就是介面的隱式實現和顯式實現。
在第一種實現中,是常見的介面實現方法,在******output中隱式的實現了介面ioutput的output方法。
在第二種實現中,是在一些場合會用到的實現方法,在******output中以ioutput.output的形式顯式實現。注意,這裡不可以新增public、private等修飾符,因為介面方法預設都是public的。
介面的顯式實現與隱式實現
我們在實現介面時,常常是類繼承介面,然後在介面中實現相應的方法。如下 inte ce ioutput class output ioutput 使用 測試一下實現的結果 可以看到繼承介面的類s的輸出s.output和介面i的輸出i.output是一樣的結果。這是很常見的介面實現方式。那如果我們這樣實...
C 中介面的顯式和隱式實現
介面的實現分為 隱式實現和顯式實現。如果類或者結構要實現的是單個介面,可以使用隱式實現,如果類或者結構繼承了多個介面那麼介面中相同名稱成員就要顯式實現。顯示實現是通過使用介面的完全限定名來實現介面成員的。使用顯式介面成員執行體通常有兩個目的 1 因為顯式介面成員執行體不能通過類的例項進行訪問,這就可...
C 顯式介面實現和隱式介面實現
介面的實現分為 隱式實現和顯式實現。隱式介面實現 如果類或者結構要實現的是單個介面,可以使用隱式實現。顯式介面實現 如果類或者結構繼承了多個介面,那麼介面中相同名稱成員就要顯式實現。顯示實現是通過使用介面的完全限定名來實現介面成員的。使用顯式介面成員執行體通常有兩個目的 1 因為顯式介面成員執行體不...