天天看點

關于抽象類和接口有什麼用和怎麼用

        最初接觸java的時候,隻知道它的裡面存在着這些内容,這些知識,很少去考慮有這些内容,那麼,在做項目的時候,到底是用來做什麼的呢?今天,無意間從圖書館中借到了CSDN上連載的技術文章:《Java 程式設計那些事兒》,看到的時候有一種親切感,因為,我學習java就是從CSDN上開始的,而且一直以來,她都伴随我的學習過程,是以,馬上借來看看。

      說多了……

     今天才發現,為什麼要有接口和抽象類?原來首相類和接口是用來做這些的:

     在項目設計時,整個項目的代碼一般分為結構代碼和邏輯代碼。如何設計結構代碼呢?這就需要使用下面将要介紹的抽象類和接口的知識了。這是最直接的問題吧。

     下面,我摘抄一些《Java 程式設計那些事兒》上的一些話幫助了解一下怎麼用這些:

      一,兩者的差別:(一下三條)

        抽象類是一個類,是以,類的内部可以包含的構造方法、方法、屬性等都可以在抽象類中存在,同時,抽象類在繼承的時候是單繼承。

        接口内部隻能包含常量屬性和抽象方法,但是一個類可以實作多個接口。

      抽象類可以包含抽象方法,也可以包含實體方法,接口内部的方法都必須使抽象方法。

      抽象類可以繼承類,而接口不能繼承類。

二,什麼時候使用抽象類?

      1.子類不內建其他父類

      2.子類中存在完全相同的功能實作方法

      3.子類中存在相同的屬性

       4.設計出的結構需要繼承其他類(必須使用抽象類)

三,什麼時候使用接口?

         1.子類已經繼承了其他父類(隻能用接口)

        2.子類中不存在完全相同的功能實作方法

        3.子類中不存在相同的屬性

        4.設計出的結構不需要繼承其他類

四,舉一個接口的例子(因為抽象類和類很相似,是以就不舉了)(摘自《Java 程式設計那些事兒》)

//定義接口

public interface USB

{

public static final int V = 5;

public abstract byte[] readDate();

}

//實作接口

public class Computer implements USB

{

int memorySize;     //有不同的屬性

public byte[] readData()

{

//實作過程

}

}

//實作接口2

public class DigitalCamera implements USB

{

int vendorName;     //有不同的屬性

public byte[] readData()

{

//實作過程

}

}