① 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中定義抽象類的屬性時並非必須是常量。抽象類的要求如下:
(1)抽象方法必須為public或者protected(因為如果為private,則不能被子類繼承,子類便無法實現該方法),預設情況下默認為public;
(2)抽象類不能直接實例化,需要依靠子類採用向上轉型的方式處理;
(3)抽象類必須有子類,使用extends繼承,一個子類只能繼承一個抽象類;
(4)子類(如果不是抽象類)則必須覆寫抽象類之中的全部抽象方法(如果子類沒有實現父類的抽象方法,則必須將子類也定義為為abstract類。);
③ java中如何理解抽象屬性(abstract)
abstract修飾的方法,是讓他的子類實現的,自身不做實現。這樣就好像定義了一個模版,你也可以把它想像為一道填空題。比如你在做一個銀行系統的時候,要你寫一個算利息的程序。而對於利息(本金*利率)中利率的值,根據存款年限的不同,資金的不同,存款方式的不同,利率就不同,所以你沒辦法,寫一個具體的方法來算利率。所以你只能定義一個抽象方法來表示利率,而自身不去實現。根據不同的情況,在子類中實現你的抽象方法,算出利率。
④ java中 抽象主要體現在哪幾個方面
在JAVA中一切實物都是對象,都是類的其中之一員
打個比方
你手裡有個蘋果
yourapple 它的類是 Apple 繼承了 Fruit類 同時實現了Eatable介面等,這就是抽象
yourapple具有Apple和Fruit的所有方法和屬性
方法屬於過程抽象
屬性屬於數據抽象
總之就是用對象就可以描述一個具體的實物的所有行為了
yourapple如果你需要它成熟 你就調用Fruit里的成熟方法就可以了 因為所有的水果都會成熟的
yourapple如果你需要它的生產地 就找到它的Apple類里定義的屬性就可以了
⑤ java中介面和抽象類以及它們的屬性方法都分別可以用什麼訪問修飾符
【Java介面修飾符是public abstract】
介面就是提供一種統一的」協議」,而介面中的屬性也屬於「協議」中的成員。它們是公共的,靜態的,最終的常量。相當於全局常量。抽象類是不「完全」的類,相當於是介面和具體類的一個中間層。即滿足介面的抽象,也滿足具體的實現。
介面中不可以定義變數即定義的變數前都要加上final修飾,使之成為常量(沒有final修飾的是變數,加上final修飾就會變成常量)。所以介面的屬性默認是public static final 常量,且必須賦初值。
【抽象類】
abstract抽象
1、修飾類時為抽象類,即為概念類,不能實例化;
2、修飾的方法為抽象方法,該方法沒有方法體,必須由子類實現,若沒有實現會報錯;
3、子類若為抽象類,則其中的抽象方法可不實現;
註:抽象類可以沒有抽象方法,但抽象方法所在的類必須為抽象類
⑥ Java 抽象類必須有抽象屬性或者抽象方法嗎
抽象類裡面不一定有抽象方法
,但是有抽象方法一定是抽象類,屬性和普通類屬性一樣
⑦ java 抽象怎麼理解
抽象是一種面向對象的編程實踐的核心原則, Java具有所有OOPs原則,抽象是一個Java語言的主要構建塊。
數據抽象的跨度從創建簡單的數據對象集合的實現復雜如HashMap或HashSet。
控制抽象是結構化編程背後主要驅動力。