1. 程式人生 > 其它 >第六章 介面

第六章 介面

一、小結

  本章主要講解了介面,包括介面的簡介、定義介面、介面的繼承、介面的實現、介面與抽象類、介面的UML圖、介面的回撥、介面與多型、介面引數以及面向介面程式設計。通過對本章的學習,讀者應該熟練掌握定義介面、介面的繼承與實現、介面與抽象類、介面與多型和麵向介面程式設計,這些是本章的重點內容。

二、測驗

  

只能用public修飾介面

實現一個介面必須實現介面的所有方法,一個類可以實現多個介面,介面間可以有繼承關係(extends)

介面可以被實現也可以被繼承、多繼承,類不能實現多繼承,當子類繼承父類介面時,子類獲得父類的所有方法

三、習題

1、定義介面有什麼好處?

介面是一個特殊的抽象類,介面可以解除各個模組之間的耦合性,是多型的一種體現,通過介面可以實現具體的功能,提高工作效率。

2、介面是否可以被繼承?

可以

3、介面與抽象類有哪些共同點?

(1)介面與抽象類都不能被例項化,能被其他類實現和繼承

(2)介面和抽象類中都可以包含抽象方法,實現介面或繼承抽象類的普通子類都必須實現這些抽象方法。

4、 介面與抽象類有哪些差別?

(1)介面中只能包含抽象方法,不能包含普通方法;抽象類中可以包含普通方法。

(2)介面中不能定義靜態方法;抽象類中可以定義靜態方法。

(3)介面中只能定義靜態常量屬性,不能定義普通屬性;抽象類裡可以定義靜態常量屬性,也可以定義普通屬性。

(4)介面不能包含構造器;抽象類可以包含構造器,抽象類裡的構造器為了讓其子類呼叫並完成初始化操作。

(5)介面中不能包含初始化塊,但抽象類可以包含初始化塊。

(6)一個類最多隻能有一個直接父類,包括抽象類;但是一個類可以實現多個介面。

5、建立一個汽車介面,介面中要定義汽車應有的屬性和行為,然後編寫多個汽車介面的實現類,再建立一個主類,在主類中建立sell()銷售方法,該方法中包含汽車介面型別的引數。當執行該方法時,應該輸出傳遞給sell()方法的各種汽車物件的價格、顏色、型號等資訊。

首先建立介面:

public interface Car {

String getName();

String getColor();

double getPrice();

}

實現介面的類:

public class Audi implements Car{

public String getName() {

return "Q7";//return語句:雙引號

}

public String getColor() {

return "魔力黑";

}

public double getPrice() {

return 133.9;

}

}

public class BMW implements Car{

public String getName(){

return "寶馬7系";

}

public String getColor(){

return "雪晶白";

}

public double getPrice(){

return 270.35;

}

}

public class FourServiceShop {

public void sellCar(Car car){

System.out.println("您選擇的車型是:"+ car.getName()+",車的顏色是:"+car.getColor()+",價格是:"+car.getPrice()+"萬元");

}

public static void main(String[] args) {

FourServiceShop car =new FourServiceShop ();

car.sellCar(new BMW());//把建立的類當作介面引數代入

car.sellCar(new Audi());

}

}