1. 程式人生 > >《Java編程思想》筆記 第九章 接口

《Java編程思想》筆記 第九章 接口

上轉型 有一個 abstract 5.1 pan ace 避免 AC 內部

1.抽象類和抽象方法

1.1 抽象方法,僅有方法聲明沒有方法體

abstract class AbstractClass{
    abstract void f(); //沒有 {}
    
}

1.2 只要有一個或者多個抽象方法,則必是抽象類,抽象類可以沒有抽象方法。

1.3 抽象類內可以沒有抽象方法,也可以只有實現的方法。

abstract class AbstractClass{
    
    void g(){
        System.out.println("hello");
    }
}

1.4 繼承抽象類,要覆寫抽象類內的所有抽象方法,提供方法體,如果不提供方法體那麽這個子類也是抽象類,前面要將加關鍵字

2.接口

2.1 接口內沒有任何具體實現,沒有一個方法體。

2.2 接口中的方法默認public權限

2.3 接口中可以有域,但被隱性設定為 static 和 final

2.4 接口權限和類一樣也有public,但必須在同名文件中

3.協變類型:

  • 子類中被覆寫的方法返回類型可以是父類方法返回值的子類型
class A {

}

class B extends A {

}

abstract class AbstractClass {

    abstract A g();

}

class C extends AbstractClass {
    //返回值類型是A類型
    
// A g(){ // return null; // } //g() 返回值類型是A類型的子類型B也可以覆寫 B g() { return null; } }

4.多重繼承

4.1 接口 extends 接口 , 接口,接口,. . .

4.2 類 extends 接口,接口,接口, . . .

4.3 類 extends 類 implements 接口,接口,接口, . . .

4.4 類 implements 接口,接口,接口, . . .

  • 實現多個接口,這些接口中應該避免有相同的方法名

5.嵌套接口

  • 接口可以嵌套在類中或者其他接口中

5.1 把嵌套的接口/類在A類外部看作A類的數據成員,在A類內部就看做正常的接口/類

5.2 類中嵌套的類或者接口權限可以是private

5.3 由於接口中的方法默認public,所以在接口中的接口不能被聲明為private

5.4 嵌套中的 private接口 作用就是 讓這個private接口中的方法無返回類型,不能向上轉型

class A {
    public class Ain{
        
         
        }
    //內部的類權限可以設定為private
    private class Ain2{  
        
        }
    public interface Aface{
        
    }
    private interface Aface2{
        void f(); //必須返回空值
    }
    
}

6.接口與工廠

  • 待補充

《Java編程思想》筆記 第九章 接口