scala中extends和with的使用

2021-08-13 09:06:37 字數 816 閱讀 4026

在scala中有的時候用extends有的時候用with,到底該用什麼呢?

請看下面用例

trait

mytrait1

}trait

mytrait2

class

myclass1

extends

mytrait1

class

myclass2{}

class

myclass3

extends

mytrait1

with

mytrait2

val test = new myclass2 with mytrait2

}val test2 = new myclass1

test forfun()

test2 dosomething("test")

這裡我們宣告了特質mytrait1,mytrait2,和myclass(1~3)這裡myclass繼承了mytrait1的特質,用了extends關鍵字,myclass3繼承了mytrait1,和mytrait2特質,第乙個trait之前用了extends而第二個trait之前用了with,而例項化myclass的時候在trait之前又用了with關鍵字。

這裡特意宣告一下: 如果是待宣告的類沒有擴充套件其他類只是或入了一些trait那麼必須用extends關鍵字,並把它用在第乙個trait之前而其它的trait之前用with關鍵字,就像myclass3, 如果在例項化某乙個型別的時候想要混入某乙個特質,這個時候要用with關鍵字,如new mycalss2這乙個宣告一樣

vue mixins和extends的妙用

vue提供了mixins extends配置項,最近使用中發現很好用。如有不對請指正,感謝尤大提供搞笑生產工具。看看官方文件怎麼寫的,其實兩個都可以理解為繼承,mixins接收物件陣列 可理解為多繼承 extends接收的是物件或函式 可理解為單繼承 繼承鉤子函式const extend const...

vue mixins和extends的妙用

vue提供了mixins extends配置項,最近使用中發現很好用。如有不對請指正,感謝尤大提供搞笑生產工具。看看官方文件怎麼寫的,其實兩個都可以理解為繼承,mixins接收物件陣列 可理解為多繼承 extends接收的是物件或函式 可理解為單繼承 繼承鉤子函式 const extend cons...

vue mixin和extends的使用

全域性使用場景 所有子元件內部都與要某乙個state computed或者某個方法時,甚至在所有子元件某個生命週期內都需要執行乙個一樣功能時,都可用全域性mixin 相同生命週期函式會先執行mixin內部的鉤子函式,然後再執行元件內部的鉤子函式,對於state computed或者某個方法時,元件內...