溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

什么是Java繼承

發(fā)布時(shí)間:2021-10-21 13:46:22 來(lái)源:億速云 閱讀:120 作者:iii 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“什么是Java繼承”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“什么是Java繼承”吧!

一、繼承的概念

1.什么是繼承

在現(xiàn)實(shí)生活中,繼承指的是子女繼承父輩的財(cái)產(chǎn)。在程序中,當(dāng)一個(gè)類A能夠得到另一個(gè)類B中所有非私有的數(shù)據(jù)和操作的定義作為自己的部分或全部成分時(shí),我們就叫做這兩個(gè)類之間具有繼承關(guān)系。

2.例如貓、狗、兔、豬都屬于動(dòng)物,在程序中貓、狗、兔、豬都繼承動(dòng)物。波斯貓和英國(guó)短毛貓繼承貓,這些動(dòng)物會(huì)形成一個(gè)繼承體系。在程序中繼承在現(xiàn)有的類基礎(chǔ)上創(chuàng)建一個(gè)新的類,創(chuàng)建一個(gè)新的類叫做子類,現(xiàn)有類叫做父類或超類,子類會(huì)擁有父類所有可繼承的屬性和方法。

3.繼承的實(shí)現(xiàn)

① 確定父類。

② 定義子類。

[類修飾符]  class 子類名 extends 父類名

子類能夠繼承父類所有非私有的屬性和方法。

③ 實(shí)現(xiàn)子類的功能。

4.類是如何繼承父類案例一

//定義Fruit水果類 class Fruit{     public double weight;//重量屬性     //info()方法     public void info(){             System.out.println("我是一個(gè)水果,重量為" + weight + "g!");     } } public class Apple extends Fruit{     public static void main(String[] args){             Apple a = new Apple();//創(chuàng)建對(duì)象             a.weight = 87;//給weight屬性賦值             a.info();//調(diào)用info方法     } }

輸出的結(jié)果是:

我是一個(gè)水果,重量為87.0g!

從上面代碼中,我們可以看出定義了一個(gè)Fruit類,在Fruit類中定義了weight屬性和info方法。Apple類繼承Fruit類,創(chuàng)建對(duì)象實(shí)例化,然后給weight屬性賦值,調(diào)用info方法。

5.類是如何繼承父類案例二

class Animal{     public String name;//名字屬性     public int age;//年齡屬性     //動(dòng)物叫的方法     void shout(){         System.out.print("喵喵喵~~~");   } } //定義Cat繼承Animal類 class Cat extends Animal{     //顯示名字和年齡方法     public void show(){         System.out.print("我是"+name+","+"今年"+age+"歲");   } } public class p20 { public static void main(String[] args) {     // TODO Auto-generated method stub     Cat c=new Cat();//創(chuàng)建Cat類實(shí)例對(duì)象     c.name="英國(guó)短毛貓";//給Cat類的name屬性賦值     c.age=2;//給Cat類的age屬性賦值     c.show();//調(diào)用Cat類的show()方法     c.shout();//調(diào)用Cat類的shout()方法   } }

輸出的結(jié)果是:

我是英國(guó)短毛貓,今年2歲喵喵喵~~~

在上面代碼中,首先是定義了一個(gè)Animal類,Cat類使用extends繼承Animal類.,使得Cat類是Animal類的子類,Animal作為一個(gè)父類。我們便發(fā)現(xiàn)在子類并沒(méi)有定義name、age屬性和shout()方法,可以訪問(wèn)到它們非私有屬性和方法。說(shuō)明了子類是可以擁有父類的所有非私有的屬性和方法。

二、繼承需要注意的問(wèn)題

1.單重繼承是指任何一個(gè)類都只有一個(gè)單一的父類。

例如:

class A1{     void show(){     System.out.println("A1");     } } class A2{     void show(){     System.out.println("A1"); } class B extends A1,A2{     public void show(){     System.out.println("bbb");     }  }

在上面代碼中是不合法的,任何一個(gè)類只有支持單繼承,不可以多重繼承。也是就B類是不可以同時(shí)繼承A1和A2。如果B b=new  B(),那么b.show()是調(diào)用哪個(gè)一個(gè)父類方法呢?無(wú)法給出答案,所以是不能多重繼承。

2.多重繼承是指一個(gè)類可以有一個(gè)以上的父類,它的靜態(tài)的數(shù)據(jù)屬性和操作從所有這些父類中繼承。

3.多個(gè)類可以繼承一個(gè)父類。

例如:

class A{} class B extends A{} class C extends A{}

在上面代碼中是合法的,B類和C類都可以繼承A類的所有非私有屬性和方法。

4.一個(gè)類的父類可以去繼承另外的父類,這就是多層繼承。

例如:

class A{} class B extends A{} class C extends B{}

在上面代碼中,實(shí)現(xiàn)了多層繼承B類繼承A類,B類是A類的子類,C類繼承B類,C類是B類的子類,C類也是A類的子類。在一個(gè)類是某個(gè)類父類的同時(shí),也是另一個(gè)類的父類。例如B類是A類的子類,也是C類的父類。

到此,相信大家對(duì)“什么是Java繼承”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI