1. 程式人生 > >Java抽象類和接口(二)

Java抽象類和接口(二)

system args 程序 包含 多重 代碼 apt r.java 可擴展

***************************接口*********************************

一.why


需求一直不變的時候可以不使用接口, 需求經常發生改變推薦使用接口...


軟件產品中需求會經常改變,所以一般都要使用接口...


體現了可維護、可擴展的優點


二.什麽是接口


一組規範的集合(包含屬性規範、行為規範),用的最多的是行為規範..


USB插槽(實現) != 接口(規範、看不見摸不著的)


網絡中的協議也是規範,相當於接口...

三.how 如何定義接口


使用關鍵字 interface


public interface 接口名 {

//屬性

//方法
}


註意:

1. 接口中的方法都是 抽象方法

public abstract

即使程序員 沒有寫 public 或 abstract 編譯器編譯的時候也會幫你補全這兩個關鍵字


public interface Teacher{

void teach();
}

2. 接口中的屬性都是 public static final的

即使程序員不寫這幾個關鍵字 編譯器也會幫你補全

都是靜態常量


演示代碼:

Teacher.java

package com.chapter9.演示接口;

public interface Teacher {

//1.屬性
public static final String TARGET = "teach";
//2.行為
public void teach();

public void dianMing();
}


JavaTeacher.java

package com.chapter9.演示接口;

//實現類
//實現接口要實現接口的所有方法
public class JavaTeacher implements Teacher{

@Override
public void teach() {
System.out.println("我在講java");

}

@Override
public void dianMing() {
System.out.println("我在點名");

}

public static void main(String[] args) {

Teacher jt = new JavaTeacher();

jt.teach();
}
}

***************************接口的若幹知識點*********************************


1. java這門語言是單繼承, 為了模擬多重繼承,可以使用接口,一個類可以實現多個接口來模擬多重繼承


舉例: JavaTeacher 既可以實現Teacher這個接口 又可以實現程序員這個接口

2. 接口可以擴展接口嗎?


可以. 接口可以擴展 多個接口


舉例: 高級廚師(規範)


1. 廚師(規範)

2. ArtMan(規範)

3. HealthMan(規範)


多個小的規範組成一個大的規範,接口可以擴展多個接口


3. 接口可以實現接口嗎???

不可以. 因為 實現接口 要實現接口的所有抽象方法, 實現了抽象方法以後 該類

就帶有已經實現的方法了,就不能再定義成接口了...


***************************JDK8關於接口的新特性: 帶有實現的類方法和默認方法*********************************


接口中的方法都是抽象方法


public interface Teacher {

//1.屬性
public String TARGET = "teach";
//2.行為
public void teach();

//帶有實現的類方法
public static void dianMing(){
System.out.println("我在點名");
}

//默認方法
default public void exam(){
System.out.println("給學生考試");
}
}

Java抽象類和接口(二)