原文鏈接http://zhhll.icu/2020/05/08/java%E5%9F%BA%E7%A1%80/java%E5%9F%BA%E7%A1%80%E4%B9%8B%E6%8E%A5%E5%8F%A3%E5%92%8C%E6%8A%BD%E8%B1%A1%E7%B1%BB/
抽象類
抽象方法的宣告沒有方法體,
abstract void func();
包含抽象方法的類叫做抽象類,
public abstract class Basic{
abstract void func();
protected abstract void func1();
public abstract void func2();
}
抽象方法默認是public的,不可以設定為private
介面
在java8之前的介面只允許有抽象方法,是一個完全抽象的類,沒有提供任何實作
介面中的屬性被隱式指明為static和final
public interface Inter{
int m();
}
java8之后允許介面包含默認方法和靜態方法
默認方法允許在不破壞已使用介面的代碼的情況下,在介面中新增方法
public interface Inter{
int m();
default void newMethod(){
System.out.println("新增方法");
}
}
靜態方法可以將工具功能放在介面,從而操作介面
public interface Operations{
void execute();
static void runOps(Operations... ops){
for(Operations op : ops){
op.execute();
}
}
}
抽象類和介面比較
- 可以實作多個介面;但只能繼承一個抽象類
- 介面只能包含靜態屬性,不支持物件狀態,成員變數默認是public static final的;抽象類可以包含屬性,非抽象方法可能參考這些屬性
- 介面不需要在子類實作默認方法,默認方法可以參考其他介面的方法;抽象類必須在子類中實作抽象方法
- 介面沒有構造器;抽象類可以有構造器
- 介面隱式為public;抽象類可以為protected
由于本身的博客百度沒有收錄,博客地址http://zhhll.icu
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/244124.html
標籤:Java
下一篇:個人介紹
