日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

《Java 核心技术卷1 第10版》学习笔记------ 接口(Interface)

發布時間:2024/9/30 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Java 核心技术卷1 第10版》学习笔记------ 接口(Interface) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接口技術作用:主要描述類具有什么功能,而并不給出每個功能的是的實現。

Java的繼承(inheritance)是不支持的多繼承的,但是Java接口是支持多繼承的。

一個 Java 類實現一個接口類就必須實現接口類中的每一個方法。

接口中的所有方法自動地屬于 public 。

在接口中還可以定義常量,但是不能有實例域。

在JDK1.8之前,也不能在接口中實現方法。1.8+版本可以實現一些簡單的方法(靜態方法、默認方法),不過這些方法不能引用實例域---(接口沒有實例域)

提供實例域和方法的任務應該由實現接口的那個類來完成。

接口中的靜態方法:

在 Java SE 8 中, 允許在接口中增加靜態方法 。理論上講 , 沒有任何理由認為這是不合法的 。 只是這有違于將接口作為抽象規范的初衷 。
通常的做法都是將靜態方法放在伴隨類中 。 在標準庫中 , 你會看到成對出現的接口 和實用工具類 , 如 Collection/ Collections 或 Path/ Paths 。

public interface Path {public static Path get ( St ring first , String... more ) {return Fi 1 eSystems . getDefaul t () . get Path( fi rst , more ) ;} }

接口中的默認方法:

可以為接口方法提供一個默認實現 。 必須用 default 修飾符標記這樣一個方法 。
?

public interface Comparable<T> {default int compareTo ( T other ) { return 0; }// By default , all elements are the same }

解決接口默認方法的沖突

如果先在一個接口中將一個方法定義為默認方法 然后又在超類或另一個接口中定義了,同樣的方法, 會發生什么情況 ?

Java 的相應規則要簡單得多 。 規則如下 :
1 ) 超類優先 。

如果超類提供了一個具體方法 , 同名而且有相同參數類型的默認方法會被忽略 。
2 ) 接口沖突 。

如果一個超接口提供了一個默認方法 另一個接口提供了一個同名而且,參數類型 ( 不論是否是默認參數 ) 相同的方法, 必須覆蓋這個方法來解決沖突 。
?

6.2.2 Comparator 接口

比較器接口,用于增加自定義的比較規則。

現在假設我們希望按長度遞增的順序對字符串進行排序, 而不是按字典順序進行排序 。肯定不能讓 String 類用兩種不同的方式實現 compareTo 方法,更何況, String 類也不應由我們來修改 。

要處理這種情況 , ArrayS .Sort 方法還有第二個版本, 有一個數組和一個比較器 ( comparator )作為參數, 比較器是實現了 Comparator 接口的類的實例 。

public interface Comparator<T> {int compare(T first, T second ) ; }

要按長度比較字符串, 可以如下定義一個實現 Comparator<String > 的類 :

class LengthComparator implements Comparator<String> {public int compare(String first, String second ) {return first.lengthO - lengthO ;} }

具體完成比較時,需要建立一個實例:

Comparator<String> comp = new LengthComparator(); if(comp.compare(words[i], words[j]) > 0);// 使用 Arrays.sort方法 String [] friends = { "Peter " , " Paul ", "Mary" } ; Arrays,sort (friends, new LengthComparatorO ) :

lambda 表達式、函數式接口、方法引用、內部類、代理暫略。【后續單獨補上】

?

總結

以上是生活随笔為你收集整理的《Java 核心技术卷1 第10版》学习笔记------ 接口(Interface)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。