Java基礎(chǔ)之抽象類、接口作為方法參數(shù)和返回值

不同修飾符使用細(xì)節(jié)

常用來修飾類悔醋、方法芬骄、變量的修飾符

public 權(quán)限修飾符鹦聪,公共訪問, 類,方法,成員變量

protected 權(quán)限修飾符,受保護(hù)訪問, 方法,成員變量

默認(rèn)什么也不寫 也是一種權(quán)限修飾符淘太,默認(rèn)訪問, 類,方法,成員變量

private 權(quán)限修飾符,私有訪問, 方法,成員變量

static 靜態(tài)修飾符 方法,成員變量

final 最終修飾符 類,方法,成員變量,局部變量

abstract 抽象修飾符 類 ,方法

我們編寫程序時(shí)撇贺,權(quán)限修飾符一般放于所有修飾符之前冰抢,不同的權(quán)限修飾符不能同時(shí)使用;

同時(shí)挎扰,abstract與private不能同時(shí)使用鼓鲁;

同時(shí),abstract與static不能同時(shí)使用橙弱;

同時(shí)燥狰,abstract與final不能同時(shí)使用。

修飾類能夠使用的修飾符

修飾類只能使用public蛀缝、默認(rèn)的目代、final、abstract關(guān)鍵字在讶,使用最多的是 public關(guān)鍵字

public class Demo {} //最常用的方式

class Demo2{}

public final class Demo3{}

public abstract class Demo4{}

修飾成員變量能夠使用的修飾符

public : 公共的

protected : 受保護(hù)的

: 默認(rèn)的

private :私有的

final : 最終的

static : 靜態(tài)的

(更多干貨java咨詢霜大,可關(guān)注公眾號(hào)“軟帝在線”)

使用最多的是 private

public int count = 100;

protected int count2 = 100;

int count3 = 100;

private int count4 = 100; //最常用的方式

public final int count5 = 100;

public static int count6 = 100;

修飾構(gòu)造方法能夠使用的修飾符

public : 公共的

protected : 受保護(hù)的

: 默認(rèn)的

private :私有的

使用最多的是 public

public Demo(){} //最常用的方式

protected Demo(){}

Demo(){}

private Demo(){}

修飾成員方法能夠使用的修飾符

public : 公共的

protected : 受保護(hù)的

: 默認(rèn)的

private :私有的

final : 最終的

static : 靜態(tài)的

abstract : 抽象的

使用最多的是 public

public void method1(){}//最常用的方式

protected void method2(){}

void method3(){}

private void method4(){}

public final void method5(){}

public static void method6(){}//最常用的方式

public abstract void method7();//最常用的方式

類作為方法參數(shù)與返回值

類作為方法參數(shù)

在編寫程序中战坤,會(huì)經(jīng)常碰到調(diào)用的方法要接收的是一個(gè)類類型的情況,那么這時(shí)碟嘴,要向方法中傳入該類的對(duì)象囊卜。如下代碼演示:

class Person{

public void show(){

System.out.println("show方法執(zhí)行了");

}

}

//測試類

public class Test {

public static void main(String[] args) {

//創(chuàng)建Person對(duì)象

Person p = new Person();

//調(diào)用method方法

method(p);

}

//定義一個(gè)方法method眠菇,用來接收一個(gè)Person對(duì)象捎废,在方法中調(diào)用Person對(duì)象的show方法

public static void method(Person p){

p.show();

}

}

類作為方法返回值

寫程序調(diào)用方法時(shí)致燥,我們以后會(huì)經(jīng)常碰到返回一個(gè)類類型的返回值,那么這時(shí)辐益,該方法要返回一個(gè)該類的對(duì)象脱吱。如下代碼演示:

class Person{

public void show(){

System.out.println("show方法執(zhí)行了");

}

}

//測試類

public class Test {

public static void main(String[] args) {

//調(diào)用method方法,獲取返回的Person對(duì)象

Person p = method();

//調(diào)用p對(duì)象中的show方法

p.show();

}

//定義一個(gè)方法method续捂,用來獲取一個(gè)Person對(duì)象宦搬,在方法中完成Person對(duì)象的創(chuàng)建

public static Person method(){

Person p = new Person();

return p;

}

}

抽象類作為方法參數(shù)與返回值

抽象類作為方法參數(shù)

開發(fā)中间校,抽象類作為方法參數(shù)的情況也很多見。當(dāng)遇到方法參數(shù)為抽象類類型時(shí)憔足,要傳入一個(gè)實(shí)現(xiàn)抽象類所有抽象方法的子類對(duì)象滓彰。如下代碼演示:

//抽象類

abstract class Person{

public abstract void show();

}

class Student extends Person{

@Override

public void show() {

System.out.println("重寫了show方法");

}

}

//測試類

public class Test {

public static void main(String[] args) {

//通過多態(tài)的方式,創(chuàng)建一個(gè)Person類型的變量,而這個(gè)對(duì)象實(shí)際是Student

Person p = new Student();

//調(diào)用method方法

method(p);

}

//定義一個(gè)方法method稳析,用來接收一個(gè)Person類型對(duì)象彰居,在方法中調(diào)用Person對(duì)象的show方法

public static void method(Person p){//抽象類作為參數(shù)

//通過p變量調(diào)用show方法,這時(shí)實(shí)際調(diào)用的是Student對(duì)象中的show方法

p.show();

}

}

抽象類作為方法返回值

抽象類作為方法返回值的情況,也是有的畦徘,這時(shí)需要返回一個(gè)實(shí)現(xiàn)抽象類所有抽象方法的子類對(duì)象。如下代碼演示:

//抽象類

abstract class Person{

public abstract void show();

}

class Student extends Person{

@Override

public void show() {

System.out.println("重寫了show方法");

}

}

//測試類

public class Test {

public static void main(String[] args) {

//調(diào)用method方法关筒,獲取返回的Person對(duì)象

Person p = method();

//通過p變量調(diào)用show方法,這時(shí)實(shí)際調(diào)用的是Student對(duì)象中的show方法

p.show();

}

//定義一個(gè)方法method杯缺,用來獲取一個(gè)Person對(duì)象,在方法中完成Person對(duì)象的創(chuàng)建

public static Person method(){

Person p = new Student();

return p;

}

}

接口作為方法參數(shù)與返回值

接口作為方法參數(shù)

接口作為方法參數(shù)的情況是很常見的袍榆,經(jīng)常會(huì)碰到塘揣。當(dāng)遇到方法參數(shù)為接口類型時(shí),那么該方法要傳入一個(gè)接口實(shí)現(xiàn)類對(duì)象才写。如下代碼演示奴愉。

//接口

interface Smoke{

public abstract void smoking();

}

class Student implements Smoke{

@Override

public void smoking() {

System.out.println("課下吸口煙,賽過活神仙");

}

}

//測試類

public class Test {

public static void main(String[] args) {

//通過多態(tài)的方式房资,創(chuàng)建一個(gè)Smoke類型的變量檀头,而這個(gè)對(duì)象實(shí)際是Student

Smoke s = new Student();

//調(diào)用method方法

method(s);

}

//定義一個(gè)方法method暑始,用來接收一個(gè)Smoke類型對(duì)象,在方法中調(diào)用Smoke對(duì)象的show方法

public static void method(Smoke sm){//接口作為參數(shù)

//通過sm變量調(diào)用smoking方法廊镜,這時(shí)實(shí)際調(diào)用的是Student對(duì)象中的smoking方法

sm.smoking();

}

}

接口作為方法返回值

接口作為方法返回值的情況嗤朴,在后面的學(xué)習(xí)中會(huì)碰到。當(dāng)遇到方法返回值是接口類型時(shí)股缸,那么該方法需要返回一個(gè)接口實(shí)現(xiàn)類對(duì)象吱雏。如下代碼演示瘾境。

//接口

interface Smoke{

public abstract void smoking();

}

class Student implements Smoke{

@Override

public void smoking() {

System.out.println("課下吸口煙镰惦,賽過活神仙");

}

}

//測試類

public class Test {

public static void main(String[] args) {

//調(diào)用method方法陨献,獲取返回的會(huì)吸煙的對(duì)象

Smoke s = method();

//通過s變量調(diào)用smoking方法,這時(shí)實(shí)際調(diào)用的是Student對(duì)象中的smoking方法

s.smoking();

}

//定義一個(gè)方法method,用來獲取一個(gè)具備吸煙功能的對(duì)象急膀,并在方法中完成吸煙者的創(chuàng)建

public static Smoke method(){

Smoke sm = new Student();

return sm;

}

}

歸納總結(jié):

類作為方法參數(shù)時(shí)龄捡,說明要向方法中傳入該類的對(duì)象

類作為方法返回值時(shí),說明該方法要返回一個(gè)該類的對(duì)象晨雳。

抽象類作為方法參數(shù)時(shí)奸腺,說明要傳入一個(gè)實(shí)現(xiàn)抽象類所有抽象方法的子類對(duì)象。

抽象類作為方法返回值時(shí)帮非,說明需要返回一個(gè)實(shí)現(xiàn)抽象類所有抽象方法的子類對(duì)象讹蘑。

接口作為方法參數(shù)時(shí),說明該方法要傳入一個(gè)接口實(shí)現(xiàn)類對(duì)象陨舱。

接口作為方法返回值時(shí)版仔,說明該方法需要返回一個(gè)接口實(shí)現(xiàn)類對(duì)象。

(更多相關(guān)java知識(shí)干貨益缎,關(guān)注“軟帝在線”公眾號(hào)獲取相關(guān)福利)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市畦娄,隨后出現(xiàn)的幾起案子弊仪,更是在濱河造成了極大的恐慌杖刷,老刑警劉巖滑燃,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異典予,居然都是意外死亡乐严,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門捂敌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來既琴,“玉大人甫恩,你說我怎么就攤上這事√钗铮” “怎么了滞磺?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涎劈。 經(jīng)常有香客問我阅茶,道長,這世上最難降的妖魔是什么蹦浦? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任撞蜂,我火速辦了婚禮,結(jié)果婚禮上溉贿,老公的妹妹穿的比我還像新娘。我一直安慰自己九杂,他們只是感情好宣蠕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布植影。 她就那樣靜靜地躺著,像睡著了一般思币。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谷饿,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天博投,我揣著相機(jī)與錄音,去河邊找鬼听怕。 笑死虑绵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的翅睛。 我是一名探鬼主播捕发,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼檐涝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拉岁,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤惰爬,失蹤者是張志新(化名)和其女友劉穎惫企,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狞尔,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡偏序,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年研儒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片端朵。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冲呢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出邻薯,到底是詐尸還是另有隱情乘凸,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布木人,位于F島的核電站冀偶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏稠曼。R本人自食惡果不足惜客年,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一漠吻、第九天 我趴在偏房一處隱蔽的房頂上張望途乃。 院中可真熱鬧扔傅,春花似錦、人聲如沸猎塞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倘屹。三九已至慢叨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間插爹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留气嫁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓崖面,卻偏偏與公主長得像梯影,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子简识,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容