java學習筆記 02

接口

接口是功能的集合,接口只描述應該具備的方法而無具體實現方法。接口的具體實現是由接口的實現類完成的。

接口定義(interface)

public interface 接口名{
	抽象方法1;
    抽象方法2...
}

注意:
1. 接口中方法均爲公共訪問的抽象方法;
2. 接口中無法定義普通話成員變量;

接口實現類(implements)

接口實現類,實現接口功能的類,前提其是一個類(class);
定義格式:

class 類名 implements 接口名{
	重寫接口中的所有方法
}

在實現接口後,該類會將接口中所有的抽象方法繼承過來,必須重寫所有方法完成具體邏輯,否者將成爲一個抽象類;

接口成員特點

  1. 接口中纔可以定義變量,但是需要固定修飾符**< public static final >** 接口中的成員變量雖然也稱之爲變量,但是是固定無法改變的;
    注意:
    • 修飾符可以省略不寫也可以選擇性寫;
    • 常量被靜態修飾,可以用類名直接調用,被接口名直接調用;
        public interface Demo{
        	public static final int x = 1public abstract void func1();
     	}
        public static void main(String[] args){
        	System.out.println(Demo.x);
        }
    
  2. 接口中可以定義方法,但是需要固定修飾符**< public abstract >**;
  3. 接口與抽象類一致,無法創建對象;
  4. 實現類必須覆蓋接口中所有的抽象方法後,纔可以實例化。
public interface Demo{
	public static final int x = 1public abstract void func1();
}
class InterfaceImpl implements Demo{
	public static void func1(){
    	System.out.println("implements");
    }
}```
 
## 接口的多實現
由於實現類需要重現接口中的方法,而方法的實現是依靠實現類實現的,所以並不會產生類多繼承的錯誤;  
注意:
	* 應當避免多實現時,不同接口擁有相同函數名返回值類型不一樣的函數,此時無法重寫函數;
```java
public interface A{
	public abstract void a()}
public interface B{
	public abstract int a()}
// 接口多實現無法實現重寫
public class InterfaceImple A,B{
	public static void a(){
    	System.out.println("implements");
    }
}

接口間的多繼承

與類之間的繼承相似,接口與接口之間也可以產生繼承關係,多個接口之間可以使用(extends)進行jicheng

類繼承類的同時實現接口

子類可以通過繼承父類擴展功能,也可以通過接口的功能實現功能的拓展。

public interface A {
	public abstract void a()}
public interface B {
	public abstract void b()}
public abstract class C {
	public abstract void c()}

public class D extends C implements A, B{
	public void a(){
    }
    public void b(){
    }
    public void c(){
    }
}

學習筆記,望指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章