java 物件導向 介面 抽象

2021-06-20 08:42:15 字數 1320 閱讀 9808

乙個物件例項化過程:

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代表第三人稱...