學習 為什麼要使用抽象類

2021-09-08 03:04:20 字數 1131 閱讀 2102

abstract描述的類即是抽象類,描述的方法即是抽象方法。

被此關鍵字描述的類,不能直接例項化,需要匿名。

如果乙個類裡面包含抽象方法,則該類必須宣告為抽象類。

抽象方法沒有實現,子類如果不是抽象類,則必須實現父類的抽象方法。

以上差不多就是抽象類的概念和注意事項。

之前一直的理解就是,抽象類和介面的作用類似,都是用於規範和定義實現類的。

直到昨天才想到了抽象類的另外作用,是介面做不到的。

**如下:

public

abstract

class ct1

protected

abstract

void print();

}class ct2 extends ct1

@override

protected

void print()

}public

class cttest

}

這裡有三個類,執行cttest,我們可以看到結果如下:

ct1:class abstractclass.ct2

ct2:class abstractclass.ct2

注:「abstractclass」為我的包名

即是,ct1的無參建構函式已經被執行了,且,例項是它的子類。

事實上,我們可以認為,假如我們沒有在建構函式裡寫super構造,每乙個子類的建構函式裡面都在第一行預設呼叫了super();

利用這一點,我們就可以「強迫」子類做很多事情。

**如下:

public

abstract

class ct1

protected

abstract

void print();

}class ct2 extends ct1

ct2(string str)

@override

protected

void print()

}public

class cttest

}

執行結果如下:

ct2的print()方法被呼叫了

ct2的有參建構函式

結果清晰可見。

抽象類定義 為什麼要使用抽象類

為什麼要使用抽象類?有什麼好處?答案 1 現實中一些父類中的方法沒必要寫 各個子類中的方法會有所不同 所以沒必要在父類中寫 2 看被人 時候會注意這是抽象方法 會有個提示作用 3 當看到乙個類是抽象的,要關心他的抽象方法,因為他的子類一定會重寫他,然後去找抽象類的引用,會有多型性的體現 4 物件導向...

為什麼使用抽象類,什麼時候使用抽象類

假設有2個類,乙個類是主力球員,乙個類是替補球員。public class normalplayerpublic string firstnamepublic string lastnamepublic decimal weeksalarypublic string getfullname publ...

C 為什麼設計抽象類?

網上也有許多介紹,但我總覺得不能一針見血,根據自己工作實際中用到的,才知道有些時候真的是需要抽象類 先說一種場景 a設計了一項功能他把此功能封裝成乙個類,以類的方式提供,他要把這項功能提供給b c,我們理所當然的想到他會把原始碼或者編譯成的 庫 件給bc。現在在修改一下這個場景 如果 abc做的是同...