乙個物件例項化過程:
person p = new person();
1,jvm會讀取指定的路徑下的person.class檔案,並載入進記憶體,
並會先載入person的父類(如果有直接的父類的情況下).
2,在堆記憶體中的開闢空間,分配位址。
3,並在物件空間中,對物件中的屬性進行預設初始化。
4,呼叫對應的建構函式進行初始化。
5,在建構函式中,第一行會先到呼叫父類中建構函式進行初始化。
6,父類初始化完畢後,在對子類的屬性進行顯示初始化。
7,在進行子類建構函式的特定初始化。
8,初始化完畢後,將位址值賦值給引用變數.
final關鍵字:
1,final是乙個修飾符,可以修飾類,方法,變數。
2,final修飾的類不可以被繼承。
3,final修飾的方法不可以被覆蓋。
4,final修飾的變數是乙個常量,只能賦值一次。
為什麼要用final修飾變數。其實在程式如果乙個資料是固定的,
那麼直接使用這個資料就可以了,但是這樣閱讀性差,所以它該資料起個名稱。
而且這個變數名稱的值不能變化,所以加上final固定。
寫法規範:常量所有字母都大寫,多個單詞,中間用_連線。
抽象類:
抽象:籠統,模糊,看不懂!不具體。
特點:
1,方法只有宣告沒有實現時,該方法就是抽象方法,需要被abstract修飾。
抽象方法必須定義在抽象類中。該類必須也被abstract修飾。
2,抽象類不可以被例項化。為什麼?因為呼叫抽象方法沒意義。
3,抽象類必須有其子類覆蓋了所有的抽象方法後,該子類才可以例項化。
否則,這個子類還是抽象類。
1,抽象類中有建構函式嗎?
有,用於給子類物件進行初始化。
2,抽象類可以不定義抽象方法嗎?
可以的。 但是很少見,目的就是不讓該類建立物件。awt的介面卡物件就是這種類。
通常這個類中的方法有方法體,但是卻沒有內容。
抽象類和介面的異同點:
相同點:
都是不斷向上抽取而來的。
不同點:
1,抽象類需要被繼承,而且只能單繼承。
介面需要被實現,而且可以多實現。
2,抽象類中可以定義抽象方法和非抽象方法,子類繼承後,可以直接使用非抽象方法。
介面中只能定義抽象方法,必須由子類去實現。
3,抽象類的繼承,是is a關係,在定義該體系的基本共性內容。
介面的實現是 like a 關係,在定義體系額外功能。
物件導向(繼承 抽象 介面)
一 繼承的好處 1.提高 的復用性。2.讓類與類之間產生了關係,有了這個關係,才有了多型的特性。二 如何使用乙個繼承體系中的功能那?想要使用體系,先查閱體系最父類的描述,因為最父類中定義的是該體系中的共性功能。通過了解共性功能,就可以知道該體系的基本功能。那麼這個體系已經可以基本使用了。三 那麼在具...
Java物件導向 (介面)
一 介面是抽象類的特例,在抽象類中的方法可以實現,也可以用抽象方法定義,但在介面中就只能是定義,不能有實現。定義介面,使用關鍵字inte ce 介面裡的方法都是public公有方法,即使不寫,預設也是pubic的。其他的修飾符都無效。介面定義出來,是要被類所實現的。定義乙個類實現介面,就得實現介面裡...
Java物件導向 介面
1,介面 inte ce與類平級 有些額外的方法或功能定義在父類裡面不合適,需要用到介面 public inte ce skill public class dogextends animal implements skill,daomang extends,implements最後的s代表第三人稱...