繼承(inheritance)和java介面(interface in java)的區別

Java是Sun Microsystems公司開發的一種程式語言。Java可以用來開發各種應用程式。它是一種支援面向物件、結構化等多種正規化的語言,Java的主要優點是支援面向物件程式設計(OOP)。程式設計師可以建立類和物件。OOP有四個支柱。它們是繼承、多型、抽象和封裝。繼承和介面與OOP有關。繼承和介面的關鍵區別在於繼承是從現有的類中派生新的類,而介面是實現抽象類和多重繼承。...

繼承(inheritance)和java接口(interface in java)的區別

Java是Sun Microsystems公司開發的一種編程語言。Java可以用來開發各種應用程序。它是一種支持面向對象、結構化等多種範式的語言,Java的主要優點是支持面向對象編程(OOP)。程序員可以創建類和對象。OOP有四個支柱。它們是繼承、多態、抽象和封裝。繼承和接口與OOP有關。繼承和接口的關鍵區別在於繼承是從現有的類中派生新的類,而接口是實現抽象類和多重繼承。

目錄

1. 概述和主要區別
2.Java中的繼承是什麼
3. Java中的接口是什麼
4. Java中繼承與接口的相似性
5. 並行比較——繼承與Java中的接口的表格形式
6. 摘要

什麼是java中的繼承(inheritance in java)?

繼承可以實現代碼的可重用性。繼承有助於重用現有類的屬性和方法。使用舊類派生新類的機制稱為繼承。舊類稱為父類或超級類。派生類稱為子類或子類。

Java繼承的語法如下。

類子類擴展超類{

變量聲明;

方法聲明;

}

繼承概念可以用下面的例子來解釋。假設有一個名為a的類,如下所示。

公共A級{

公共無效金額(){

System.out.println(“金額”);

}

}

如果我們想在不改變現有類的情況下添加一個新方法,我們可以如下所示。

公共B類{

公共虛空子(){

打印輸出系統(“子公司”);

}

}

程序員可以使用繼承來使用類A sum()。

公共B類擴展了A類{

公共虛空子(){

打印輸出系統(“子公司”);

}

}

在main函數中,可以創建一個B的對象並調用sub(),它屬於B類,sum()屬於A類。

公共靜態void main(String[]args){

B obj=新B();

目標子公司();

目標金額();

}

有不同類型的遺傳。它們是單繼承、多重繼承、多級繼承和層次繼承。在單一繼承中,有一個基類和一個派生類。在多級繼承中,有三個類,即基類、中間類和派生類。中間類從基類繼承,派生類從中間類繼承。在層次繼承中,有一個基類和多個派生類。有一種特殊類型被稱為混合遺傳。它是兩種或多種繼承類型的組合。

繼承(inheritance)和java接口(interface in java)的區別

圖01:繼承

在多重繼承中,有許多基類和一個派生類。假設A類和B類是基類。類C是派生類。如果A類和B類都有相同的方法,而程序員從派生類調用該方法,則會導致歧義問題。繼承兩個類可能會導致編譯時錯誤。因此,Java不支持多重繼承。一個接口可以用來克服這個問題。

什麼是java接口(interface in java)?

抽象是一個隱藏實現細節並只向用戶顯示功能的過程。抽象可以通過使用抽象類或接口來實現。抽象方法是沒有實現的方法。具有至少一個抽象方法的類是抽象類。抽象類的示例如下。

抽象A類{

抽象空和();

}

假設有兩個抽象類A和B。為了實現A和B的抽象方法,創建了一個新的類C。那麼C類應該同時擴展A和B,但是Java不支持多重繼承。因此,應該使用接口。接口可用於聲明方法,但無法定義方法。無法使用接口創建對象。類C應該實現接口A和B中的所有方法。

接口A{

空和();

}

接口B{

void sub();

}

類C實現了A,B{

公共無效金額(){

System.out.println(“總和”);

}

公共虛空子(){

System.out.println(“減法”);

}

}

現在,在主程序中可以創建一個C對象並調用這兩個方法。

公共靜態void main(String[]args){

C obj=新C();

目標金額();

目標子公司();

}

所以,接口可以用來實現多重繼承。

接口的另一個用途是它提供安全性。參考以下代碼。

接口A{

無效金額();

}

實現類B{

公開無效金額(){

System.out.println(“總和”);

}

公共空乘(){

System.out.println(“乘法”);

}

}

當創建B的對象時,可以同時調用sum()和multiply()方法。如果程序員想限制使用multiply()函數,可以如下所示。

公共靜態void main(String[]args){

A obj=新B();

目標金額();

}

A obj=new B();將創建一個對象。它的類型是A,內存分配為B。可以調用sum(),但不能執行multiply()。這個限制是使用接口完成的。

繼承(inheritance)和java接口(interface in java)的共同點

  • 這兩個概念都與面向對象編程有關
  • 兩者都代表著一種關係。

繼承(inheritance)和java接口(interface in java)的區別

Java中的繼承與接口
繼承是一個OOP概念,用於從現有類派生新類。 在OOP中實現繼承和多重抽象機制。
使用
繼承提供了代碼的可重用性。 接口提供抽象和多重繼承。

總結 - 繼承(inheritance) vs. java接口(interface in java)

Java是一種支持面向對象編程的多範式編程語言。繼承和接口與面向對象編程有關。繼承和接口的區別在於繼承是從現有的類中派生出新的類,接口是實現抽象類和多重繼承。

下載java版的inheritance-vs-interface的pdf版本

你可以下載這篇文章的PDF版本,並按照引文說明離線使用。請在這裡下載PDF版本繼承和Java接口的區別

引用

1.要點,教程。“Java繼承”,教程點,2017年10月31日。此處提供2.Point教程。“Java接口”,教程點,2017年10月31日。此處提供
2.要點,教程。“Java接口”,

  • 發表於 2020-10-25 00:02
  • 閱讀 ( 64 )
  • 分類:科技

你可能感興趣的文章

扔(throw)和丟擲java(throws in java)的區別

...用於異常處理的關鍵字。 扔(throw)和丟擲java(throws in java)的區別 Java中的throw vs throws throw是Java中用來顯式丟擲異常的關鍵字。 throws是Java中用來宣告異常的關鍵字。 多重例外 throw不能有多個異常。 丟擲可能有多個...

  • 發佈於 2020-09-21 19:02
  • 閲讀 ( 52 )

包裹(package)和java介面(interface in java)的區別

Java中的Package和Interface的主要區別在於,Package有助於對類進行有條理的分類以方便訪問和維護,而Interface則有助於實現多個繼承和實現抽象。 Java是最流行的程式語言之一。Java的主要優點是它支援面向物件程式設計。這種方...

  • 發佈於 2020-10-18 11:01
  • 閲讀 ( 50 )

睡覺(sleep)和在java中等待(wait in java)的區別

...立執行緒的方法。這是透過擴充套件thread類或實現可執行介面來實現的。Thread類具有用於線上程上建立和執行操作的建構函式和方法。Thread類擴充套件物件類並實現可執行介面。可執行介面應該由任何一個類實現,這些類的例項...

  • 發佈於 2020-10-19 03:04
  • 閲讀 ( 47 )

包裝類(wrapper class)和java中的基元型別(primitive type in java)的區別

...類用於此轉換。本文討論了Java中包裝類和基元型別之間的區別。Java中包裝類與基元型別的關鍵區別在於,包裝類用於將原語型別轉換為物件,並將物件轉換回原語型別,而基元型別是由Java程式語言提供的預定義資料型別。 目...

  • 發佈於 2020-10-19 06:27
  • 閲讀 ( 90 )

靜止的(static)和java期末考試(final in java)的區別

...成員,而final用於宣告常量變數或無法重寫的方法或無法繼承的類。 目錄 1. 概述和主要區別 2. Java中什麼是靜態的 3. Java中的final是什麼 4. Java中static和final的相似性 5. 並排比較-靜態和最終的Java表格形式 6. 摘要 什麼是java中的靜...

  • 發佈於 2020-10-19 07:48
  • 閲讀 ( 53 )

選中的(checked)和java中的未檢查異常(unchecked exception in java)的區別

...ArrayOutOfBound異常。本文討論Java中checked和unchecked異常之間的區別。Java中checked異常和unchecked異常之間的關鍵區別在於編譯器檢查checked異常,而編譯器不檢查checked異常。 目錄 1. 概述和主要區別 2. Java中的檢查異常是什麼 3. 什麼是J...

  • 發佈於 2020-10-19 08:38
  • 閲讀 ( 61 )

春天(spring)和冬眠(hibernate)的區別

...支援程式、編譯器、程式碼庫、工具和應用程式程式設計介面(API)。它連線專案所需的所有元件。程式設計師可以使用框架在程式中使用預定義的程式碼。一些常見的基於Java的框架有Spring、Hibernate、Struts、Maven和JSF。本文討論...

  • 發佈於 2020-10-19 14:07
  • 閲讀 ( 56 )

最終決賽(final finally)和用java完成(finalize in java)的區別

...最終、最終和定稿 也可以對類使用final關鍵字。新類不能繼承final類的變數和方法。這有助於提高安全性。由於類被子類阻止使用,所以資料受到保護。 什麼是最後是java(finally in java)? 在程式設計中,可能會出現錯誤。錯誤可...

  • 發佈於 2020-10-19 15:24
  • 閲讀 ( 52 )

這(this)和超級java(super in java)的區別

...用物件建模。物件使用類是貪得無厭的。OOP的一個支柱是繼承。它提供了程式碼的可重用性。已經存在的類是超類,派生類是子類。super關鍵字可用於引用超類的物件。系統中有多個物件。“this”關鍵字用於引用當前物件。this...

  • 發佈於 2020-10-19 18:17
  • 閲讀 ( 57 )

可執行(runnable)和線(thread)的區別

...執行介面之後,它可以擴充套件一個類。 Java不支援多個繼承。在擴充套件Thread類之後,它不能擴充套件任何其他類。 程式碼可維護性 可執行介面使程式碼更易於維護。 線上程類中,維護非常耗時。 總結 - 可執行(runnable) ...

  • 發佈於 2020-10-19 19:23
  • 閲讀 ( 50 )
gmmm604914
gmmm604914

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦