色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Java接口和抽象類有什么區別

瀏覽:4日期:2022-08-19 17:27:57

接口(interface)和抽象類(abstract class)是支持抽象類定義的兩種機制。

接口是公開的,不能有私有的方法或變量,接口中的所有方法都沒有方法體,通過關鍵字interface實現。

接口(英文:Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法。

接口并不是類,編寫接口的方式和類很相似,但是它們屬于不同的概念。類描述對象的屬性和方法。接口則包含類要實現的方法。

除非實現接口的類是抽象類,否則該類要定義接口中的所有方法。

接口無法被實例化,但是可以被實現。一個實現接口的類,必須實現接口內所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,接口類型可用來聲明一個變量,他們可以成為一個空指針,或是被綁定在一個以此接口實現的對象。

抽象類是可以有私有方法或私有變量的,通過把類或者類中的方法聲明為abstract來表示一個類是抽象類,被聲明為抽象的方法不能包含方法體。子類實現方法必須含有相同的或者更低的訪問級別(public->protected->private)。抽象類的子類為父類中所有抽象方法的具體實現,否則也是抽象類。

接口可以被看作是抽象類的變體,接口中所有的方法都是抽象的,可以通過接口來間接的實現多重繼承。接口中的成員變量都是static final類型,由于抽象類可以包含部分方法的實現,所以,在一些場合下抽象類比接口更有優勢。

相同點:

(1)都不能被實例化

(2)接口的實現類或抽象類的子類都只有實現了接口或抽象類中的方法后才能實例化。

不同點:

(1)接口只有定義,不能有方法的實現,java 1.8中可以定義default方法體,而抽象類可以有定義與實現,方法可在抽象類中實現。

(2)實現接口的關鍵字為implements,繼承抽象類的關鍵字為extends。一個類可以實現多個接口,但一個類只能繼承一個抽象類。所以,使用接口可以間接地實現多重繼承。

(3)接口強調特定功能的實現,而抽象類強調所屬關系。

(4)接口成員變量默認為public static final,必須賦初值,不能被修改;其所有的成員方法都是public、abstract的。抽象類中成員變量默認default,可在子類中被重新定義,也可被重新賦值;抽象方法被abstract修飾,不能被private、static、synchronized和native等修飾,必須以分號結尾,不帶花括號。

(5)接口被用于常用的功能,便于日后維護和添加刪除,而抽象類更傾向于充當公共類的角色,不適用于日后重新對立面的代碼修改。功能需要累積時用抽象類,不需要累積時用接口。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 国产精自产拍久久久久久蜜 | 国产欧美久久久另类精品 | 日本 欧美 在线 | 亚洲精品国产综合99久久一区 | 久久aⅴ免费观看 | 一级毛片q片 | 欧美综合自拍亚洲综合百度 | 欧美线在线精品观看视频 | 亚洲欧美精品网站在线观看 | 亚洲精品高清国产一线久久97 | 欧美一区二区视频三区 | 国产日韩亚洲欧美 | 美女又爽又黄视频 | 思思久热re6这里有精品 | 无国产精品白浆是免费 | 久草免费看 | 日韩欧美视频一区二区在线观看 | 国产在线一区二区 | 欧美久久久久久久一区二区三区 | 特黄aaaaaa久久片 | 男人女人做黄刺激性视频免费 | 国产三级日产三级日本三级 | 久久爽久久爽久久免费观看 | 久久精品全国免费观看国产 | 91影视永久福利免费观看 | 亚洲精品视频在线观看免费 | 国产成人综合亚洲欧美在 | 欧美一级免费 | 亚洲国产精品日韩在线 | 日韩一级黄色毛片 | 大学生久久香蕉国产线观看 | 精品免费久久久久欧美亚一区 | 免费成年人视频网站 | 国产成人啪精品视频免费软件 | 亚洲成av人片在线观看无码 | 欧美精品一区二区三区在线 | 三级网址免费 | 国产成人精品亚洲日本在线观看 | 亚洲国产欧美自拍 | 欧美日本一区二区三区 | 亚洲精品久久久久网站 |