導航:首頁 > 編程語言 > java抽象類的使用

java抽象類的使用

發布時間:2023-01-24 07:56:46

『壹』 java中什麼是抽象類

由abstract修飾的方法叫抽象方法;由abstract修飾的類叫抽象類。抽象的類無法進行實例化,因為他不是具體存在的類,或者說這樣的類還不夠完善,不能直接使用new關鍵字調用其構造器生成該類的對象。我們可以使用abstract定義一個抽象類和抽象方法,示例代碼如下:
abstract class 類名
{
abstract int 方法名(int x,int y);
}
抽象的方法沒有方法體。需要注意的是在抽象類中既可以有抽象方法,也可以有普通方法,注意抽象方法是沒有方法體的(也就是方法後面是沒有大括弧的)。凡是繼承這個抽象類的實體子類,都必須要實現這個抽象方法。
我們總結一下抽象類的特點:
(1)抽象類不能被實例化
(2)構造方法 和 static 方法不能是抽象的
(3)父類的抽象方法往往在子類中實現
(4)抽象類可以具有指向子類對象的對象引用

『貳』 java中抽象類的存在的意義是什麼

java中抽象類更利於代碼的維護和重用。x0dx0a抽象類往往用來表徵對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。具體分析如下:x0dx0a1.因為抽象類不能實例化對象,所以必須要有子類來實現它之後才能使用。這樣就可以把一些具有相同屬性和方法的組件進行抽象,這樣更有利於代碼和程序的維護。x0dx0a比如本科和研究生可以抽象成學生,他們有相同的屬性和方法。這樣當你對其中某個類進行修改時會受到父類的限制,這樣就會提醒開發人員有些東西不能進行隨意修改,這樣可以對比較重要的東西進行統一的限制,也算是一種保護,對維護會有很大的幫助。x0dx0a2.當又有一個具有相似的組件產生時,只需要實現該抽象類就可以獲得該抽象類的那些屬性和方法。x0dx0a比如學校又新產生了專科生這類學生,那麼專科生直接繼承學生,然後對自己特有的屬性和方法進行補充即可。這樣對於代碼的重用也是很好的體現。x0dx0a所以,Java中抽象類對於代碼的維護和重用有很好的幫助,也是Java面向對象的一個重要體現。

『叄』 JAVA抽象類和介面的區別,使用場景

技術上的區別:

  1. 抽象類可以擁有方法的實現,而介面只能擁有方法的聲明。

  2. 一個類只能有一個抽象的基類,但是可以有多個介面。

語義上的區別(這個更有意義,也更難理解)這個與設計相關,合理使用並且區分抽象類和介面能讓自己的設計更加靈活和健壯。

抽象類代表一個類實體,只是這類實體無法被實例化。而介面則一般不能夠代表實體,只能夠代表一個功能,或是一個屬性。

舉個例子來說,圖形類,Shape,能夠派生為三角形,正方形等等。Shape就是一個抽象類,代表圖形這個實體,但是確實無法實例化。它有一個介面,Drawable,這個介面說明它可以被畫出來。從英語上面來說,Shape是名詞,Drawable是形容詞。這就是語義上面的差別。當然你非要把Drawable聲明成抽象類,Shape變成介面,技術上確實沒問題,但是這個涉及就很奇怪,難以理解。


如果你覺得不太理解,你可以追問。這兩個概念確實有些模糊。


研究設計是好事情,設計意識的好壞很影響自己在軟體工程這個領域能夠達到的高度。

『肆』 JAVA抽象類的定義與使用

抽象類是帶有Abstract的修飾的類,不管這個類中是否有方法是否被實現(有可能有一個或多個的抽象方法,或者就是沒有抽象方法都行),他都是抽象類。
根據這個樓主可以自己創建以下。

『伍』 java中抽象類的作用是什麼

通過繼承它實現多態,後期綁定,可以為將來要實現的東西做好介面,實現重用性,
例如:
abstract class A {
public abstract void doSomething();
}

class B extends A {
public void doSomething() {
System.out.println("do B");
}
}

class C extends A {
public void doSomething() {
System.out.println("do C");
}
}

public class Test {
public static void main(Stringp[] args) {
A a1 = new B();
A a2 = new C();
B b = new B();
C c = new C();
doSomething(a1); //這里
doSomething(a2); //這里
doSomething(b); //這里,如果下面的方法不是用抽象類作參數,比如用C c做參數,這里會有什麼問題?
doSomething(c); //這里
}

public static void doSomething(A a) {//這里,用抽象類,為什麼,自己思考
a.doSomething();
}
}

//這個例子只是抽象類的最基本的設計模式,和介面差不多

『陸』 java抽象類

其實狠好理解,因為抽象類包括抽象方法和非抽象方法。

如果父類是一個抽象類,當子類繼承父類的時候,要實現抽象的方法,如果不實現的話,那麼子類就必須是一個抽象的類。

『柒』 JAVA: 為什麼要使用"抽象類" 使用"抽象類"有什麼好處

簡單來說吧
抽象類是在介面和實體類之間的一個橋梁
例如
做一個介面叫做飛行FlyAnimalAction,裡面定義一個方法叫做flying,再定義一個方法叫做eat
做一個類叫做蚊子實現介面,蚊子要實現flying方法,實現自己的eat方法
做一個類叫做蒼蠅實現介面,蒼蠅也要實現flying方法,實現自己的eat方法
你發現所有會飛的動物都要實現這個介面,很麻煩,不如
做一個抽象類FlyAnimal,然後實現上面的介面
在裡面實現flying這個方法,因為大部分的飛行動作是一樣的,而eat方法則繼續寫成抽象方法,因為大部分的動物吃東西是不一樣的
下面你再寫蚊子類就簡單了,可以直接繼承這個抽象類,然後實現自己的吃方法就行了
而且蒼蠅類的製作也是一樣,這個時候抽象類的功能就顯示出來了,當然抽象類的功能遠遠不是這些,只是初期理解到這里就夠了。
有興趣可以交流交流,Q:405960,註明:JAVA技術交流

『捌』 java中的抽象類的用法

1)在繼承抽象類時,必須覆蓋該類中的每一個抽象方法,而每個已實現的方法必須和抽象類中指定的方法一樣,接收相同數目和類型的參數,具有同樣的返回值,這一點與介面相同。 2)當父類已有實際功能的方法時,該方法在子類中可以不必實現,直接引用的方法,子類也可以重寫該父類的方法(繼承的概念)。
3)而實現 (implement)一個介面(interface)的時候,是一定要實現介面中所定義的所有方法,而不可遺漏任何一個。
4)另外,抽象類不能產生對象的,但可以由它的實現類來聲明對象。 有鑒於此,在實現介面時,我們也常寫一個抽象類,來實現介面中的某些子類所需的通用方法,接著在編寫各個子類時,即可繼承該抽象類來使用,省去在每個都要實現通用的方法的困擾。
編輯本段實例
為了讓一個類成為抽象類,至少必須有一個純虛函數。純虛函數形式如下: virtual return type function() = 0; 例如,類A有兩個純虛函數lock()、unlock()和一個虛析構函數: class A { public: virtual void lock(void)=0; virtual void unlock(void)=0; virtual ~A(void); } 將函數lock()和unlock()初始化為0使它們成為純虛函數,沒有0這個初使化器,它們僅僅是虛函數。 class B : public A { protected: pthread_mutex_t x; public: B(void); ~B(void); virtual void lock(void) { ead_mutex_lock(x); } virtual void unlock(void) { ead_mutex_unlock(x); } } 抽象類對於提供模式、藍圖和後代類遵循的原則有用。如果遵循了藍圖的語義,後代類的行為可能按抽象類提供者和使用者所期望的那樣。通過使用抽象類,C++程序員可以提供C++組件的規范,在它的構建中指導組件的實現者。

閱讀全文

與java抽象類的使用相關的資料

熱點內容
在船上做皮肉生意的電影 瀏覽:655
倫理電影飛在天上的船 瀏覽:224
求個網址能在線看 瀏覽:548
美國古埃及電影 瀏覽:77
韓國電影成人學院演員有誰 瀏覽:956
美國大胸電影 瀏覽:140
主角重生老北京的小說 瀏覽:199
邵氏100部恐怖影片 瀏覽:100
青春期2裡面的跳舞的歌 瀏覽:37
國產動作愛情片 瀏覽:420
韓國有部特種兵與護士的電影 瀏覽:662
《貪婪》中的日本女演員 瀏覽:477
男主得艾滋病的電影 瀏覽:807
罪孽船長泰國版在線觀看 瀏覽:194
外國電影一個黑男孩在深林 瀏覽:902
叔嫂不倫之戀電影 瀏覽:211
溫暖溫柔是哪部小說 瀏覽:204
穿越抗戰自立為軍閥的小說 瀏覽:601
韓國強殲電影有哪些 瀏覽:291
一女二三男小說穿越文 瀏覽:824