1. 程式人生 > >Java學習筆記5

Java學習筆記5

clas 可維護 引用調用 分層 order jdk 可擴展 特性 extends

接口

  當一個抽象類,如果抽象類中所有方法都是抽象的,那麽我們就可以把它定義為一個接口,接口是對行為的抽象,類是對屬性和行為的抽象。接口沒有具體方法,也沒有屬性。

  接口中可以定義常量。

  接口也能繼承接口,可以多級繼承,也可以繼承於多個父接口。

interface A{
public void sleep();
}
interface B{
public void laugh();
}
interface C extends A,B{
public void happy();
public void sleep2();
}
interface D extends A,C{

}
class Implement implements D{

@Override
public void sleep() {
// TODO 自動生成的方法存根

}

@Override
public void happy() {
// TODO 自動生成的方法存根

}

@Override
public void laugh() {
// TODO 自動生成的方法存根

}

@Override
public void sleep2() {
// TODO 自動生成的方法存根

}

}
public class TestInterface {
public static void main(String[] args) {

}
}

接口的實現

  關鍵字:implements

  語法:class 類名 implements 接口名{}

  一個類如果實現了接口,就必須要實現接口中所有的抽象方法。

接口在JDK1.8中的特性

  接口可以定義靜態的方法,用接口名打點調用。

  可以選擇性地實現接口中的方法,定義默認方法即可。語法: public default void 方法名(){}

  接口被類實現的時候沒有強制性,可以重寫方法。

接口的好處

  1.接口定義的是一種標準,可以使我們的代碼分層開發,分模塊開發。

  2.降低代碼的耦合度,提高代碼的可擴展性和可維護性。

  3.接口改進了單繼承的局限。

接口和抽象類的區別

  1.接口是行為的抽象。可以有靜態方法,抽象方法和默認方法。抽象類可以有所有方法。

  2.接口和抽象類都不能實例化,接口需要類來實現,然後通過類實例化;抽象類需要子類來繼承,然後通過子類實例化。

  3.抽象類智能單繼承,接口可以多繼承(jdk1.7),接口還可以多實現。

  4.接口中的屬性是static final類型的,抽象類中的屬性跟普通類中的屬性沒有區別。

  5.接口中的方法默認就是抽象的,不需要加abstract,抽象類中的抽象方法需要加上abstract。

父子類之間類型轉換

  子類→父類:

  語法:父類名 對象名 = new 子類名();

  在父子類、抽象類、接口中,都是可行的。子類的類型可以自動轉換成父類的類型,如果子類重寫了父類的方法,那麽使用父類的引用調用方法時,調用的是子類的方法。

  屬性是不適用的,屬性沒有重寫的概念。子類的實例賦給父類的引用的時候,調用屬性時,調用的是父類的屬性。

  父類→子類:

  前提:這個父類的類型的引用有真身,而且只能轉換成這個真身對應的子類類型。

  語法:子類名 新對象名 = (子類名)原對象名;

Java學習筆記5