多肽是同一事物,不同時刻表現的不同狀態
1.要有繼承
2.要有重寫
3.父類引用指向子類物件
class
animal
}class
catextends
animal
}…….
animal x =
newcat()
x.show()
//呼叫的是子類中的方法
簡單的說:編譯看左邊,執行看右邊。
多型環境下對靜態成員方法,成員方法的呼叫
編譯和執行都看等號左邊。
anmail anmail =
newcat()
; anmail.
eat();
/* cat cat=(cat) anmail;//向下轉型 當父類型別不能訪問子類特有的方法時使用*/
if(anmail instanceof
cat)
else
final用於宣告類 屬性 方法
當final修飾類的時候,該類不能被繼承
當final修飾方法的時候,該方法不能被重寫
當final修飾變數:
1.定義時直接賦值,值不能被修改
2.宣告時不賦值,在構造方法中賦值
3.修飾成員方法的引數,防止資料在方法體中被修改
如果乙個類中沒有包含足夠的資訊來描繪乙個具體的物件,這樣的類就是抽象類。
抽象類除了不能例項化物件之外,類的其它功能依然存在,成員變數、成員方法和構造方法的訪問方式和普通類一樣。
用abstract修飾的類是抽象類,.如果類中有抽象方法,則這個類一定是抽象類,如果乙個類是抽象類,不一定有抽象方法.
抽象類只能作為父類,表示一種繼承,
構造方法與靜態方法不能用abstract修飾
[訪問許可權]
abstract
class 類名
public
abstract
class
apublic abtract voidb(
);
抽象類與抽象函式
1 抽象函式 只有函式定義,沒有函式體的函式。例如 abstract void fun 2 抽象類 基類 使用abstract定義的類稱之為抽象類。記住 抽象類天生就是當爹的,要被繼承!1 抽象類不能生成物件 假設可以生成物件,那麼可以呼叫裡面的抽象函式,而抽象類中若是有乙個抽象 函式,其函式體為空...
抽象類與抽象方法
有些類注定是不能被初始化的,即不能被new 設想一下,乙個animal類下有很多子類,dog,cat,lion等,這些子類都可以被例項化,但是animal如果被例項化後會變成什麼樣?會有什麼特徵?這是難以想象的,因此像animal這樣的父類就不能例項化,我們迫切需要有一種類,只能例項化其子類物件而本...
抽象類與抽象方法
l 抽象類與抽象方法由abstract修飾 l abstract的使用注意 抽象方法沒有方法體 抽象成員只能存在於抽象類中 抽象類可以有非抽象成員 抽象類的派生類必須實現抽象方法體 抽象類只能用作基類,無法例項化 static void main string args public abstrac...