1. 程式人生 > >java接口定義和作用

java接口定義和作用

oid 覆蓋 imp 開發 實現類 ava 提示 接口實現 都是

接口語法

1.接口是一種引用類型,可以等同看作類。修飾符 interface 接口名
2.接口中只能出現常量和抽象方法
3.接口其實是一個特殊的抽象類,特殊在接口是完全抽象的
4.接口中沒有構造方法,接口也無法實例化
5.接口和接口之間可以多繼承
6.一個類可以實現多個接口,這裏的實現等同於繼承
7.一個非抽象的類實現接口,需要將接口中所有方法實現/重寫/覆蓋

#java
package study1;

public interface A{
    //常量都是public static final,可省略
    public static final String sucess = "SUCCESS";
    public static final double pi = 3.14;
    byte max_value = 127;
    //接口中所有的抽象方法都是public abstract,
    public abstract void m1();
    //接口方法不能有方法體,如 void m22(){};會提示interface abstract methods cannot have body
    
    void m2();

    interface B{
        void m1();
    }
    interface C{
        void m2();
    }
    interface D{
        void m3();
    }
    interface E extends B,C,D{
        void m4();
    }
    /*
    extends只能單繼承,implements可以多繼承
    如果實現的接口有多個方法,必須覆蓋接口中的方法。
    */
    class MyClass implements B,C{
        public void m2(){}
        public void m1(){}
    }
    class MyClass2 implements E{
        
        public void m1(){};
        public void m2(){};
        public void m3(){};
        public void m4(){};
    }
}


接口的作用

#java
package date818;

/**
 * 接口的作用:
 * 1。可以使項目分離,所有層都面向接口開發,提高開發效率
 * 2。接口是代碼和代碼之間的耦合度降低。變得可插拔,可以隨意切換。
*  3。接口和抽象類都能完成某個功能,優先選擇接口,因為接口可以多實現,多繼承。並且一個類除了接口之外,還可以繼承其他類
 */
public interface CustomerService {
    //定義一個推出系統的方法
    void logout();
}

package date818;
//接口實現類1
public class CustomerServierImpl implements CustomerService {
    public void logout(){
        System.out.println("成功退出系統");
    }
}

package date818;
//接口實現類2
public class CustomerServiceImpl2 implements CustomerService{
    public void logout(){
        System.out.println("hello world");
    }
}

package date818;

public class TestCustomer {
    public static void main(String[] args){
        //需要執行CustomerServiceImpl和CustomerImpl2接口實現類中的logout方法
        //以下程序面向接口調用
        CustomerService cs = new CustomerServierImpl();//多態。父類型引用指向子類型對象
        //調用
        cs.logout();
        CustomerService cs2 = new CustomerServiceImpl2();
        cs2.logout();
    }
}

java接口定義和作用