本文目錄一覽:
- 1、JAVA中的抽象類
- 2、Java抽象類是什麼概念?
- 3、Java中的抽象類是什麼?
- 4、java抽象類
JAVA中的抽象類
抽象是java的特性之一,也是處理對象複雜性的一種技術!它是指只關注對象的重要細節,忽略次要細節!
在抽象類中定義的抽象方法,是由子類去實現,而不是去覆蓋,因為在父類中沒有具體的實現!
舉一個例子:
父類:
abstract
class
MyClass
{
abstract
void
display(String
str);
}
子類:
abstract
class
MyChild
extends
MyClass
{
void
display(String
str)
{
…..
}
void
method1()
{
….
}
void
method2()
{
….
}
……..
}
這個時候我需要用到display方法,其他的都不用!我們可以這樣做:
MyClass
mc
=
new
MyChild();
mc.display();
我們聲明的是一個父類類型的引用,只需要記住父類中有這個方法的聲明,不用管它子類怎麼去實現,而且看都不用看method1,method2…我們可以把精力都集中在父類!如果只有一個單純的子類,很可能需要去看他的其他方法,尤其是當display與其他方法有關聯的時候!有了這樣一個抽象的父類,就可以省去這些精力,只需要知道父類有這個方法就行了!(或許這些在小程序中體現得並不很明顯)
以上都是個人的理解,有不對的地方,還希望大家指正!
Java抽象類是什麼概念?
JAVA的抽象類其實和她的普通類在表示實現概念的東西沒多大區別,不要因她帶有抽象這個形容詞就覺得比她的普通類理解起來複雜.
個人的理解是
所謂的抽象類呢,就是帶有抽象方法的類.
所謂的抽象方法就像是一種寫代碼的規範.
抽象方法沒有方法體
抽象方法可以有參數列表
抽象方法用abstract修飾
抽象方法的訪問修飾分別為 public、protected、default(缺省 不用寫)
加深了解抽象類
/*理解JAVA抽象類
* 1.抽象類不能被實例化.
* 2.抽象類有構造器,且他的構造在他的子類被實例化時被調用的順序和普通類調用的順序是一樣的(先父後子).
* 3.抽象類內部的方法可以不是抽象方法,也就是說抽象類內部可以有具體的方法.
* 4.抽象類的抽象方法屬於一種不完整的方法,只含有聲明和定義,沒有方法主體.
* 5.如果抽象的某個子類是普通類(非abstract類型的類),那麼該子類必須Override抽象類中所有的抽象方法.
* 6.抽象類的子類也是抽象類的話,那麼該子類既可以Override父類中的方法,也可以不Override父類中的方法.
* 7.普通類中不能定義抽象方法.
* 8.static不能修飾抽象方法
* 備註:為了方便理解,所謂的普通是指如下形式定義的類
* public class X{} 或 class A XX{}
* */
Java中的抽象類是什麼?
使用了關鍵詞abstract聲明的類叫作“抽象類”。
如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。
如果一個類里包含了一個或多個抽象方法,類就必須指定成abstract(抽象)。“抽象方法”,屬於一種不完整的方法,只含有一個聲明,沒有方法主體
java抽象類
抽象類是指不允許被實例化的類;抽象方法是沒有方法體的方法。
1、抽象類可以不包括抽象方法,它反正不會去實例化,裡面的方法是不是抽象的沒有本質影響。
2、但是含有抽象方法的類絕不能被實例化,否則執行這個方法的時候,怎麼辦?
3、如果子類是非抽象的,那麼它就必須實現父類中的抽象方法;否則,它繼承來的抽象方法仍然沒有方法體,也是個抽象方法,此時就與“含有抽象方法的類必須是抽象類”相矛盾了。
比如說,我在紙上畫一個餅(抽象類),餅有個“吃到嘴裡沾一嘴芝麻”的方法。我可以在餅上畫幾個點假裝是芝麻,這時候“沾芝麻方法”就是個抽象方法,因為它不會真的掉芝麻;我也可以在餅上蘸點兒真芝麻,這時候“沾芝麻方法”就是個有實現的方法。但是用哪個方法都可以,因為沒人會去真的吃畫的餅吧。
但我要真的去照着這個圖烤一個餅(非抽象子類),那這個子類的“吃到嘴裡沾一嘴芝麻”的方法就必須有具體的實現。否則烤出來,一吃,沒芝麻啊!食客非上消協投訴不可。
原創文章,作者:ZJKUB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/329169.html