編程概念之Java抽象類有什么用?

編程概念之Java抽象類有什么用?

長沙中公優(yōu)就業(yè)      2022-04-27 21:42:01     10

編程概念之Java抽象類有什么用?,2抽象類2.1概念及案例假設(shè)有一個Employee和Student類,考慮一下對這兩個類的擴展。比如每個員工或者學生都有姓名,因此可以將nam

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹

2抽象類

2.1概念及案例

假設(shè)有一個Employee和Student類,考慮一下對這兩個類的擴展。比如每個員工或者學生都有姓名,因此可以將name放在較高層次的超類Person中。另外可以在Person中再添加一個方法getDescription,它可以返回對一個人的描述。因為不知道這個人是學生還是員工,所以該方法是抽象(abstract)的,也就是沒有方法體的。

如下代碼:

public?abstract?class?Person?{private?String?name;public?Person(String?name){this.name?=?name;}public?String?getName()?{return?name;}public?abstract?void?getDescription();}

抽象類要使用關(guān)鍵字:abstract

抽象類中除了可以包含抽象方法外,也可以包含具體數(shù)據(jù)和具體方法。抽象方法充當一個占位的角色。

擴展抽象類可以有兩種選擇:

Ø一種是在子類中定義部分抽象方法或不定義抽象方法,這樣就必須將子類也標記為抽象類;

Ø另一種是定義全部的抽象方法,這樣子類就不是抽象的了。

類即使不含抽象方法,也可以將類聲明為抽象的,不過這樣沒有什么意義。

抽象類不能被實例化。也就是說,將一個類聲明為abstract,就不能創(chuàng)建這個類的對象了,但是可以創(chuàng)建一個具體子類的對象。需要注意的是,可以定義一個抽象類的對象變量,但是它只能引用非抽象子類的對象:Person p=new Student();//這里p是一個抽象類Person的變量,但他引用非抽象子類Student的實例。

public?class?Student?extends?Person{public?Student(String?name)?{super(name);}@Overridepublic?void?getDescription()?{System.out.println("我是一個學生!");}}

以上就是長沙中公優(yōu)就業(yè)java培訓機構(gòu)的小編針對“編程概念之Java抽象類有什么用?”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

培訓啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹慎!任何要求預付定金、匯款等方式均存在風險,謹防上當。