/*使用介面的時候,需要注意:
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沒有重寫覆蓋,那麼實現類成為了抽象類。fu類5. 如果實現類鎖實現的多個介面當中,存在重複的預設方法,那麼實現類一定要對衝突的預設方法進行覆蓋重寫(a,b兩個介面中都寫了預設方法,衝突了)。見3.中實現類中覆蓋重寫了a,b中的兩個預設方法
6. 乙個類如果直接父類當中的方法,和介面當中的預設方法產生了衝突,優先用父類當中的方法。
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 介面 功能 定義...