Ⅰ java中到底什麼是抽象
在面向對象的概念中,我們知道所有的對象都是通過類來描繪的,但是反過來卻不是這樣。並不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。抽象類往往用來表徵我們在對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。比如:如果我們進行一個圖形編輯軟體的開發,就會發現問題領域存在著圓、三角形這樣一些具體概念,它們是不同的,但是它們又都屬於形狀這樣一個概念,形狀這個概念在問題領域是不存在的,它就是一個抽象概念。正是因為抽象的概念在問題領域沒有對應的具體概念,所以用以表徵抽象概念的抽象類是不能夠實例化的。 在面向對象領域,抽象類主要用來進行類型隱藏。我們可以構造出一個固定的一組行為的抽象描述,但是這組行為卻能夠有任意個可能的具體實現方式。這個抽象描述就是抽象類,而這一組任意個可能的具體實現則表現為所有可能的派生類。模塊可以操作一個抽象體。由於模塊依賴於一個固定的抽象體,因此它可以是不允許修改的;同時,通過從這個抽象體派生,也可擴展此模塊的行為功能。熟悉OCP的讀者一定知道,為了能夠實現面向對象設計的一個最核心的原則OCP(Open-Closed Principle),抽象類是其中的關鍵所在。
這是網路的一個解釋,基本很完整也很好看明白了,如果再不懂,可以問我.
Ⅱ java 抽象怎麼理解
抽象是一種面向對象的編程實踐的核心原則, Java具有所有OOPs原則,抽象是一個Java語言的主要構建塊。
數據抽象的跨度從創建簡單的數據對象集合的實現復雜如HashMap或HashSet。
控制抽象是結構化編程背後主要驅動力。
Ⅲ java,實現抽象方法的方法
答案是肯定的。我看你是不太理解抽象方法。我來是說一下我的理解吧。也不知道對不對。你掂量掂量吧。呵呵。抽象方法是這樣的。
抽象方法就是把子類要一定要實現的方法抽象出來。放到父類。繼承父類的子類就一定得重寫父類中的抽象方法。而非抽象方法不一定要重寫。父類的抽象方法不是一定要繼承。而是一定要重寫。重寫就覆蓋了父類的相應的方法(實際是隱藏,說覆蓋形象點).子類可以使用父類的非私有方法和非私有變數。
Ⅳ 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中的抽象類
抽象是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中定義一個抽象屬性
只有抽象類和抽象方法,沒有抽象屬性,因為這是無意義的;建議你把抽象類搞清楚就明白了
abstract String s = " " 這樣是不行嘀,抽象的修飾符只能修飾類和方法
Ⅶ JAVA抽象的概念
就比如說一隻貓是一個對象,它的屬性有腿,顏色(反正名詞就是屬性)等。它要吃飯就調用吃飯的方法(動詞一般為方法),走路就調用走路的方法,好處就是將所有屬於一個對象的所有屬性方法封裝起來方便重用!~
Ⅷ JAVA里抽象 到底是什麼意思啊
抽象最直觀的含義就是把現實中的東西抽離其關鍵特性,構成對象
說白了就是用程序的邏輯和數據結構模擬現實的世界..
比如說class human,表示人類
class asian extends human這是亞洲人類,這個亞洲人類是繼承自人類的..
同樣不只是實例,也可以把一些行為用相似的辦法抽象化..
建議樓主看下java編程思想第一章,講得很透徹
Ⅸ 什麼是java抽象方法
抽象方法如下例子:
abstract Class A(){//抽象類
abstract void a();//抽象方法,沒有方法體
}
註:1.抽象類或者介面不能被實例化;
2.有抽象方法的類一定是抽象類或者介面;
3.抽象類可以有不是抽象的屬性跟方法;
4.子類繼承抽象類必實現其抽象方法,除非子類是抽象類;
左上角有我頭像,有很多有趣的朋友在一起討論交流;