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抽象類和接口(二)