gdb 扩展 默认参数_默认方法一种扩展旧代码的方法
gdb 擴展 默認參數
如您所知,Java的新版本已于2014年3月18日發布,我將介紹一系列文章來演示其新功能,也許在某些方面,我將談論我的想法和批評。
我認為重要的第一個功能是“默認方法”,在所有Java語言的先前版本中,接口只能包含方法定義(聲明)而不是方法實現(方法體),但是在Java 8中,接口中增加了一個新功能,使您能夠在接口中聲明方法及其實現。
假設您可以使用以下新功能創建一個界面:
public interface Dog {void bark();default void bite() {System.out.println("Biting Biting Biting");} }public class Husky implements Dog {@Overridepublic void bark() {System.out.println("barking");}public static void main(String... args){Dog dog = new Husky();dog.bite();dog.bark();} }這是完全自我解釋的,您可以將行為添加到接口中,并且所有已實現的類都將這種行為作為方法的默認實現,因此不會被迫實現默認方法。
默認方法的原因
在之前的一篇文章中,我們對Open Close Principal進行了介紹,正如對此主體類的復習應該關閉并進行擴展一樣。 我認為默認方法并不遵循該原則,但是有些地方也許我們沒有任何解決方案來擴展我們的舊代碼。
例如,在Java 8中,語言中增加了一個新功能,可以在集合上使用lambda,可以使用此方法的一種方法是調用Collection接口的stream方法,如果這只是一個方法聲明,則說明實現了Collection的所有書面代碼會休息的。
有時候,對于我來說,它需要擴展我的界面,但是由于許多其他客戶端正在使用界面,我不得不尋找另一種解決方案,不幸的是,在大多數情況下,這是一種混亂的方式。
關于默認方法的幾點
當您要使用默認方法或要使用使用默認方法的代碼時,應了解一些要點。
- 擴展包含默認方法的接口:
當您想使用默認方法擴展或實現接口時,關于默認方法有三種選擇。- 您可以使用它們的默認實現,而忽略以重新定義它們。
- 您可以重新聲明它,因此它將是一種抽象方法。
- 您可以通過重新定義它來覆蓋它。
- 使用默認方法的多重繼承:使用默認方法,您可以擁有具有許多接口的mixin行為的類,但是您應該注意一個重要的點。
如果擴展接口具有公共方法簽名,則您 將面臨編譯時錯誤 ,因為同一方法簽名的兩個實現之間存在歧義,在這種情況下,您將需要重寫方法并通過自己的代碼來實現或選擇默認方法之一。
- 擴展包含默認方法的接口:
翻譯自: https://www.javacodegeeks.com/2014/03/default-methods-an-approach-to-extend-legacy-code.html
gdb 擴展 默認參數
總結
以上是生活随笔為你收集整理的gdb 扩展 默认参数_默认方法一种扩展旧代码的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word布局按钮快捷键(word布局按钮
- 下一篇: 您需要了解的所有有关System.gc(