Java介面(繼承父類並實現多個介面)

2021-09-16 19:51:52 字數 2487 閱讀 2514

/*

使用介面的時候,需要注意:

1. 介面是沒有靜態**塊或者構造方法的。

2. 乙個類的直接父類是唯一的,但是乙個類可以同時實現多個介面。

格式:public class myinte***ceimpl implements myinte***cea, myinte***ceb

3.如果實現類所實現的多個介面當中,存在重複的抽象方法,那麼只需要覆蓋重寫一次即可
a介面
package cn.itcast.day10.demo02;

public inte***ce myinte***cea

// 錯誤寫法!介面不能有構造方法

// public myinte***cea()

public abstract void methoda();

public abstract void methodabs();

public default void methoddefault()

}

b介面
package cn.itcast.day10.demo02;

public inte***ce myinte***ceb

// 錯誤寫法!介面不能有構造方法

// public myinte***cea()

public abstract void methodb();

public abstract void methodabs();

public default void methoddefault()

}

實現類有多個介面
package cn.itcast.day10.demo02;

public class myinte***ceimpl /*extends object*/ implements myinte***cea, myinte***ceb

@override

public void methodb()

@override

public void methodabs() // a b 都有 覆蓋一次

@override

public void methoddefault()

}

只覆蓋重寫了一次。

4. 如果實現類沒有覆蓋重寫所有介面當中的所有抽象方法,那麼實現類就必須是乙個抽象類

package cn.itcast.day10.demo02;

public abstract class myinte***ceabstract implements myinte***cea, myinte***ceb

// 沒有寫methodb那麼實現類是抽象類

@override

public void methodabs()

@override

public void methoddefault()

}

抽象方法methodb沒有重寫覆蓋,那麼實現類成為了抽象類。

5. 如果實現類鎖實現的多個介面當中,存在重複的預設方法,那麼實現類一定要對衝突的預設方法進行覆蓋重寫(a,b兩個介面中都寫了預設方法,衝突了)。見3.中實現類中覆蓋重寫了a,b中的兩個預設方法

6. 乙個類如果直接父類當中的方法,和介面當中的預設方法產生了衝突,優先用父類當中的方法。

fu類

package cn.itcast.day10.demo02;

public class fu

}

myinte***ce介面
package cn.itcast.day10.demo02;

public inte***ce myinte***ce

}

直接父類當中的方法,和介面當中的預設方法產生了衝突。zi子類
package cn.itcast.day10.demo02;

public class zi extends fu implements myinte***ce

呼叫method方法,看哪個優先
package cn.itcast.day10.demo02;

public class demo01inte***ce

}

呼叫子類物件的method方法,發現使用的是父類中的而不是介面中的方法,父類的優先順序比介面優先順序更高。

執行結果:

父類方法

process finished with exit code 0

*/

繼承父類並實現多個介面

package cn.ly.day.seven.twentytwo 使用介面的時候,需要注意 1.介面是沒有靜態 塊或者構造方法。2.乙個類的直接父類是唯一的,但是乙個類可以同時實現多個介面。格式 public class myinte ceimpl implements myinte cea,my...

類繼承父類並且實現介面

定義第乙個介面 inte ce valuable 定義第二個介面 inte ce pretectable 介面可以繼承乙個介面 inte ce a extends pretectable abstract class animal 定義test類繼承animal抽象類,並且實現介面valuable和...

Java Java子類繼承父類並呼叫介面

父類 功能 定義乙個vehicle類及其中的set函式及get函式 public class vehicle public void setname string name public void setcolor string color public void getspeed 介面 功能 定義...