詳述抽象類

2021-10-04 07:42:16 字數 913 閱讀 8091

public class mammal 

}

public class whale extends mammal

}

public class test 

}

如上,test類中展示了多型,當呼叫move方法時,指向的是子類whale中的方法。

因此,父類中的move方法的方法體便失去了其意義,可以將其化為抽象方法。

public class mammal
但上述**會報錯,原因是有抽象方法的類必須為抽象類。故改為:

public abstract class mammal
關於抽象類需要注意:

1.父類如果含抽象方法,那麼其子類必須實現(通過重寫)所有抽象方法

public final abstract class mammal
上述**錯誤,因為mammal類加final修飾就不能被繼承,其中的抽象方法便不能被實現

2.抽象類中不一定有抽象方法,但有抽象方法的類一定是抽象類

public abstract class mammal 

}

該抽象類沒有抽象方法,依然是正確的

3.抽象類不能建立物件,可以有構造方法

public class test 

}

抽象類是可有構造方法的,但不可呼叫,可以理解為呼叫構造方法建立物件,而物件中儲存的是該類的屬性與方法,儲存方法是用來使用的,而抽象方法不能被單獨使用。故不允許抽象類建立物件。

詳述抽象類

在介紹抽象類之前,我們想通過 來引入一下。背景 mammal是whale的父類。double price 9 mammal mammal new whale mammal.move 第一行 中實際上有乙個自動型別轉換的過程,因為9屬於整形,要把他變到更大的double型別就要自動型別轉換。第二三行 ...

詳述抽象抽象類與介面的區別

抽象類 抽象類 用abstract修飾的類是抽象類 抽象方法 用abstract修飾的方法是抽象方法,方法只有宣告沒有方法體 特點 注意 abstract不能與final private static一起使用 介面介面 是抽象方法的集合,用inte ce修飾 特點 抽象類與介面的區別 區別抽象類 介...

詳述抽象類與介面的區別

抽象類 只要乙個類中有抽象類,則這個類就被稱為抽象類,抽象類中可以沒有抽象方法 介面 乙個類中全部為抽象方法,則這個類就被稱為介面 具體的區別如下 抽象類介面 關鍵字abstract inte ce 成員變數 可包含任意合法成員變數 包括各種訪問級別的類成員變數和例項成員變數 只能包含公開靜態常量 ...