日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JAVA继承类phone_JAVA(9)继承与多态

發(fā)布時(shí)間:2025/3/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA继承类phone_JAVA(9)继承与多态 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

繼承與多態(tài) 、抽象類、接口

繼承:

繼承是類與類的一種關(guān)系

java中的繼承是單繼承

繼承的好處:

子類擁有父類的所有屬性和方法。(修飾符不能是private)

實(shí)現(xiàn)代碼的復(fù)用

語(yǔ)法規(guī)則:

class ?子類 ?extends 父類 {

......

}

java中的方法重寫:

如果子類對(duì)繼承父類的方法不滿意,是可以重寫父類的方法的,當(dāng)調(diào)用方法時(shí)會(huì)優(yōu)先調(diào)用子類的方法。

語(yǔ)法規(guī)則:

返回值類型、方法名、參數(shù)類型及個(gè)數(shù) 都要與父類繼承的方法相同,才叫方法的重寫。

java中的繼承初始化順序

初始化父類再初始化子類

先執(zhí)行初始化對(duì)象中的屬性,再執(zhí)行構(gòu)造方法中的初始化

java中的final的使用

final關(guān)鍵字做標(biāo)識(shí)有“最終的”含義。

final可以修飾類、方法、屬性、變量

final修飾類,則該類不能被繼承

final修飾方法,則該方法不允許被覆蓋(重寫)

final修飾屬性,則該類的屬性不會(huì)進(jìn)行隱式的初始化(類的初始化屬性必須有值)或在構(gòu)造方法中賦值(但只能選其一)

final修飾變量,則該變量的值只能賦一次值,即變?yōu)槌A?/p>

java中的super的使用

super關(guān)鍵字:

在對(duì)象的內(nèi)部使用,可以代表父類對(duì)象。

1、訪問(wèn)父類的屬性

super.age

2、訪問(wèn)父類的方法

super.eat();

子類的構(gòu)造的過(guò)程當(dāng)中必須調(diào)用其父類的構(gòu)造方法。(隱式使用了super)

如果子類的構(gòu)造方法中沒(méi)有顯示調(diào)用父類的構(gòu)造方法,則系統(tǒng)默認(rèn)調(diào)用父類無(wú)參的構(gòu)造方法。

如果顯示的調(diào)用構(gòu)造方法,必須在子類的構(gòu)造方法的第一行。

如果子類構(gòu)造方法中既沒(méi)有顯示調(diào)用父類的構(gòu)造方法,而父類又沒(méi)有無(wú)參的構(gòu)造方法,則編譯出錯(cuò)。

java中的object類

object類是所有類的父類,如果一個(gè)類沒(méi)有使用extend是關(guān)鍵字明確標(biāo)識(shí)繼承另外一個(gè)類, 那么這個(gè)類默認(rèn)繼承object類。

object類中的方法,適合所有子類。

object類的幾個(gè)重要方法:

1、toString()方法

在Object類里面定義toString()方法的時(shí)候返回的對(duì)象的哈希code碼(對(duì)象地址字符串)

可以通過(guò)重寫toString()方法表示出對(duì)象的屬性

2、equals()方法

比較的是對(duì)象的引用是否指向同一塊內(nèi)存地址。

Dog dog = new Dog();

一般情況下比較兩個(gè)對(duì)象時(shí)比較他的值是否一致,所以要進(jìn)行重寫。

Java中的多態(tài)

繼承是多態(tài)實(shí)現(xiàn)的基礎(chǔ)

對(duì)象的多種形態(tài)

引用多態(tài):

父類的引用可以指向本類的對(duì)象

父類的引用可以指向子類的對(duì)象

Animal obj1 = new Animal();

Animal obj2 = new Dog();

方法多態(tài):

創(chuàng)建本類對(duì)象時(shí),調(diào)用的方法為本類方法

創(chuàng)建子類對(duì)象時(shí),調(diào)用的方法為子類重寫的方法或者繼承的方法

多態(tài)中的引用類型轉(zhuǎn)換:

向上類型轉(zhuǎn)換(隱式/自動(dòng)類型轉(zhuǎn)換),是小類型到大類型的轉(zhuǎn)換

Dog dog = new dog();

Animal animal = dog;

向下類型轉(zhuǎn)換(強(qiáng)制類型轉(zhuǎn)換),是大類型到小類型(存在風(fēng)險(xiǎn))

Dog dog2 = animal;(不可以轉(zhuǎn)換);

Dog dog2 = (Dog)animal;(可以,強(qiáng)制內(nèi)型轉(zhuǎn)換)

instanceof運(yùn)算符,來(lái)解決引用對(duì)象的類型,避免類型轉(zhuǎn)換的安全性問(wèn)題

if(animal ?instanceof Cat ){

Cat cat = (Cat) animal;

}else{

……

}

java中的抽象類

語(yǔ)法定義:

抽象類前使用abstract關(guān)鍵字修飾,則該類為抽象類。

應(yīng)用場(chǎng)景:

a、在某些情況下,某個(gè)父類只是知道其子類應(yīng)該包含怎樣的方法,但無(wú)法

準(zhǔn)確知道這些子類如何實(shí)現(xiàn)這些方法。(約束子類有哪些方法,并不關(guān)注如何實(shí)現(xiàn)的)

b、從多個(gè)具有相同特征的類中抽象出一個(gè)抽象類,以這個(gè)抽象類作為子類的模板,從而避免了子類設(shè)計(jì)的隨意性

作用:

限制規(guī)定(約束)子類必須實(shí)現(xiàn)某些方法,但不關(guān)注實(shí)現(xiàn)細(xì)節(jié)

使用規(guī)則:

a、abstract定義抽象類

b、abstract定義抽象方法、只有聲明,不需要實(shí)現(xiàn)

c、包含抽象方法的類是抽象類

d、抽象類中可以包含普通的方法、也可以沒(méi)有抽象方法

e、抽象類不能直接創(chuàng)建、可以定義引用變量

父類文件

// 抽象類 -- 父類

public abstract class TelPhone {

// abstract定義抽象方法、只有聲明,不需要實(shí)現(xiàn)

public abstract void call();

public abstract void sendMsg();

}

子類文件

public class CellPhone extends TelPhone {

public void call() {

System.out.println("打電話");

}

public void sendMsg() {

System.out.println("發(fā)短信");

}

}

java中的接口

接口的概念:

接口可以理解為一種特殊的類,由全局常量和公共的抽象方法所組成。

類是一種具體實(shí)現(xiàn)體,而接口定義了某一批類所需要遵守的規(guī)范,接口不關(guān)心這些類的內(nèi)部數(shù)據(jù),也不關(guān)心這些類里方法的實(shí)現(xiàn)細(xì)節(jié),它只規(guī)定這些類里必須提供某些方法。

接口的定義:

和類定義不同,定義接口不再使用class關(guān)鍵字,而是使用interface關(guān)鍵字

接口定義的基本語(yǔ)法:

[修飾符] ?interface ?接口名 [extends 父接口1,父接口2...]

{

零個(gè)到多個(gè)常量定義。。。

零個(gè)到多個(gè)抽象方法的定義。。。

}

接口就是用來(lái)被繼承、被實(shí)現(xiàn)的、修飾符一般建議使用public

注意:不能使用private和protected修飾接口

接口定義:

1、常量:接口中的屬性是常量,即使定義時(shí)不添加public static final 修飾符,系統(tǒng)也會(huì)自動(dòng)加上

2、方法:接口中的方法只能是抽象方法,即使定義時(shí)不添加public static final 修飾符,系統(tǒng)也會(huì)自動(dòng)加上

使用接口:

一個(gè)類可以實(shí)現(xiàn)一個(gè)或多個(gè)接口實(shí)現(xiàn)接口使用implements關(guān)鍵字,java中一個(gè)類只能繼承一個(gè)父類,是不夠靈活的,通過(guò)實(shí)現(xiàn)多個(gè)接口可以補(bǔ)充。

繼承父類實(shí)現(xiàn)接口的語(yǔ)法為:

【修飾符】class 類名 extends ?父類 ?implements ?接口1,接口2....

{

類體部分// 如果繼承了抽象類,需要實(shí)現(xiàn)繼承的抽象方法;要實(shí)現(xiàn)接口中的抽象方法。

}

//如果要繼承父類,繼承父類必須在實(shí)現(xiàn)接口之前

總結(jié)

以上是生活随笔為你收集整理的JAVA继承类phone_JAVA(9)继承与多态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。