面向對象之final_static_接口
關鍵字:final
只能在成員定義前修飾final使用
-
在類中修改的final的話,就會不能繼承
-
在成員方法中,不能重寫,但是可以使用
-
在局部變量中,可以賦初始值,但是不能再次賦值,一旦 賦值就不能繼續賦值了
-
在引用類型中,中可以給 final(final new Dog a =new Dog();),該引用的地址值不能發生改變,否則會報錯
-
在全局變量中,final修飾成員變量,必須在創建對象之前必須有值;第一種你可以在創建時定義,第二種就是你可以在構造器中定義。
注意:final關鍵字和abstract是衝突的。
關鍵字:static (類變量\靜態變量)
解釋:可以被成員變量和成員方法,修飾,如果被修飾了,他不屬於對象,1他是被大家共享的(靜態方法區);
- 靜態變量:可以被成員變量和成員方法,修飾,如果被修飾了,他不屬於對象,1他是被大家共享的(靜態方法區);
- 靜態方法:可以不用創建對象,(直接類.方法名)調用
- 靜態類:(一般是內部類使用)
靜態和靜態可以訪問,非靜態可以訪問非靜態
非靜態可以訪問靜態(晚),靜態不可以訪問非靜態(早)另一個比較出現的慢(晚)
調用格式:
靜態的成員變量:
對象名.靜態的成員變量[可以訪問,但是不要 這樣寫];
類名.靜態成員變量
靜態的成員方法;
對象名.方法名:
接口
簡介:
什麼是接口;
接口是:引用類型,接口是方法的集合(主要寫方法,也可以寫其他的方法)
定義格式:
定義類:class
定義接口:interface
定義枚舉:enum
定義註解;@interface(Annmon)
格式:
public interface 接口名字{
//抽象方法【JDK7】
//默認方法和靜態方法【JDK8】
//私有方法和靜態方法【JDK9】
}
接口的使用:
1.和抽象類一樣,但是他是不能創建對象
2.接口是作爲父接口使用的,用於被其他的類"實現"的
3.繼承的關鍵字是:extends,而實現的關鍵字是:implements使用方式:
public class 實現類 implements 接口名字{
//實現的方法;
}
可以使用abstract,但是默認可以不寫,我們可以直接將用
參數類型 方法名();(必須實現方法)
如果用defualt的話,(可以不用實現方法)
如果用static的話,沒有重寫的說法(他是通過所在類,或者所在方法直接類.方法名調用的)
接口的優先級:
可以在繼承一個父類,可以實現多個接口(可以同時存在的)
接口的多繼承
類與類之間的:單繼承
類與接口之間的:多實現
接口與接口之間:可以多繼承
接口的特點:
1.接口中,無法定義成員變量,但是可以定義常量(public static final 參數類型,常量名(大寫)=常量值)
public static final在接口中可以省略
2.沒有構造方法,不能創建對象
3.接口中,沒有靜態代碼塊(static{})