最初接觸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()
{
//實作過程
}
}