為什麼要用實現介面的類例項化介面呢

2021-07-15 17:24:25 字數 510 閱讀 4886

一、介面不能例項化,用介面的實現類可以例項化,將實現類的物件在記憶體中的位址指向介面,這個介面就可以使用了
二、
實現介面的類 例項 = new 實現介面的類()// 這樣用不好嗎?

//這樣已經不是好不好的問題了,這樣的話,要介面有什麼用?

//用介面就是讓例項和實現類的耦合度降低。

//讓程式更加容擴充套件。

以下是問題之外的知識,想看可以往下,不想看跳過。

介面 例項 = new 實現介面的類a()

介面 例項 = new 實現介面的類b()

介面 例項 = new 實現介面的類c()

這樣的邏輯就是說,我們需要某個類,所以我們每次例項化它。

如果把 abc這三個類,再用乙個類封d裝起來,會怎麼樣呢?

介面 例項 = d.a

介面 例項 = d.b

介面 例項 = d.c

我們還是需要某個類,但是,我們不需要每次都例項化了,只需要找d「拿」就行。

PHP類例項教程(二十) PHP類介面的實現介面

類實現介面要使用 implements 類實現介面要實現其中的抽象方法。乙個類可以實現多個介面。乙個類可以使用 implements 實現介面,甚至可以實現多個介面。大部分的書說,這樣是為了實現php的多繼承。為什麼呢?php5是單繼承的,乙個類只可以繼承自乙個父類。介面可以實現多個,這樣就是多繼承...

實現什麼介面的類例項可以被foreach

被乙個哥們問到了,感覺應該是ienumerator,或者是ienumerable,但是不能確定,只有鄙視自己一下先,然後做了個試驗才確定了,只要實現了ienumerable介面就可以被foreach了,ienumerator介面是不需要實現的,只要這個類能夠通過getenumerator方法返回乙個...

為什麼要用父類引用子類的例項

class a class b extends a a a new b b類繼承a類,那麼a a new b 比 b b new b 的好處在 b b new b b可以呼叫 1 a類的沒有被子類覆蓋的方法 2 a類被子類覆蓋的方法 3 b類特有的方法 而a a new b 只可以呼叫 1和2,那麼...