程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java法式開辟中abstract 和 interface的差別詳解

Java法式開辟中abstract 和 interface的差別詳解

編輯:關於JAVA

Java法式開辟中abstract 和 interface的差別詳解。本站提示廣大學習愛好者:(Java法式開辟中abstract 和 interface的差別詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java法式開辟中abstract 和 interface的差別詳解正文


先給年夜家說下根本概念

    在Java說話中, abstract class 和interface 是支撐籠統類界說的兩種機制。恰是因為這兩種機制的存在,才付與了Java壯大的 面向對象才能。abstract class和interface之間在關於籠統類界說的支撐方面具有很年夜的類似性,乃至可以互相調換,是以許多開辟者在進 行籠統類界說時關於abstract class和interface的選擇顯得比擬隨便。其實,二者之間照樣有很年夜的差別的,關於它們的選擇乃至反應出對 於成績范疇實質的懂得、關於設計意圖的懂得能否准確、公道。

  abstract class和interface在Java說話中都是用來停止籠統類(本文 中的籠統類並不是從abstract class翻譯而來,它表現的是一個籠統體,而abstract class為Java說話頂用於界說籠統類的一種辦法, 請讀者留意辨別)界說的,那末甚麼是籠統類,應用籠統類能為我們帶來甚麼利益呢?

  在 面向對象的概念中,我們曉得一切的對象都是經由過程類來描寫的,然則反過去卻不是如許。其實不是 一切的類都是用來描寫對象的(把類詳細化),假如一個類中沒有包括足夠的信息來描寫一個詳細的對象,如許的類就是籠統類。籠統類常常用來表征我們在對成績范疇停止剖析、 設計中得出的籠統概念,是對一系列看上去分歧,然則實質上雷同的詳細概念的籠統。好比:假如我們停止一個圖形編纂軟件的開辟,就會發明成績范疇存在著圓、 三角形如許一些詳細概念,它們是分歧的,然則它們又都屬於外形如許一個概念,外形這個概念在成績范疇是不存在的,它就是一個籠統概念。恰是由於籠統的概念 在成績范疇沒有對應的詳細概念,所以用以表征籠統概念的籠統類是不克不及夠實例化的。

java開辟外面常常會用到虛函數和接口,這二者的差別是甚麼呢?

abstract: 子類外面只能繼續一個父類

interface: 子類可以完成多個接口

那甚麼時刻用abstract,甚麼時刻用interface呢?

當某個子類和父類是 is a關系時,好比一個亞洲人是一小我,那末一個亞洲人的子類可以繼續一小我的父類。
當子類和父類是like a關系時,好比一個美洲超人像一個超人,超人的才能不是每一個人都有的,所以不是一切人的屬性,我們不克不及把超才能歸於人的父類,這時候便可以用interface

代碼例子:

public abstract class Man {
public abstract void eat();
} 
public interface SuperPower {
public void superPower();
}
public class AsiaMan extends Man { 
@Override
public void eat() {
System.out.println("亞洲人用筷子吃");
}
} 
public class AmericanSuperMan extends Man implements SuperPower {
public void superPower() {
System.out.println("美國超人會飛");
}
@Override
public void eat() {
System.out.println("美國人用刀叉吃");
}
}
public static void main(String[] args) {
Man anAsiaMan = new AsiaMan();
AmericanSuperMan anAmericanSuperMan = new AmericanSuperMan();
anAsiaMan.eat();
anAmericanSuperMan.eat(); 
anAmericanSuperMan.superPower();
} 

運轉成果:

美國人用刀叉吃
美國超人會飛
亞洲人用筷子吃

准確的應用abstract和interface有益進步代碼可讀性,當人們看到extend時就會曉得這是一個is a甚麼,看到implement時可以曉得這個類有甚麼特征like a

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved