
文章插圖
一、繼承的概念
1.什么是繼承
在現實生活中 , 繼承指的是子女繼承父輩的財產 。在程序中 , 當一個類A能夠得到另一個類B中所有非私有的數據和操作的定義作為自己的部分或全部成分時 , 我們就叫做這兩個類之間具有繼承關系 。
2.例如貓、狗、兔、豬都屬于動物 , 在程序中貓、狗、兔、豬都繼承動物 。波斯貓和英國短毛貓繼承貓 , 這些動物會形成一個繼承體系 。在程序中繼承在現有的類基礎上創建一個新的類 , 創建一個新的類叫做子類 , 現有類叫做父類或超類 , 子類會擁有父類所有可繼承的屬性和方法 。
3.繼承的實現
① 確定父類 。
② 定義子類 。
[類修飾符] class子類名 extends父類名 子類能夠繼承父類所有非私有的屬性和方法 。
③ 實現子類的功能 。
4.類是如何繼承父類案例一
//定義Fruit水果類 class Fruit{ public double weight;//重量屬性 //info()方法 public void info(){ System.out.println("我是一個水果 , 重量為" + weight + "g!"); } } public class Apple extends Fruit{ public static void main(String[] args){ Apple a = new Apple();//創建對象 a.weight = 87;//給weight屬性賦值 a.info();//調用info方法 } } 輸出的結果是:
我是一個水果 , 重量為87.0g! 從上面代碼中 , 我們可以看出定義了一個Fruit類 , 在Fruit類中定義了weight屬性和info方法 。Apple類繼承Fruit類 , 創建對象實例化 , 然后給weight屬性賦值 , 調用info方法 。
5.類是如何繼承父類案例二
classAnimal{ publicStringname;//名字屬性 public int age;//年齡屬性 //動物叫的方法 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();//創建Cat類實例對象 c.name="英國短毛貓";//給Cat類的name屬性賦值 c.age=2;//給Cat類的age屬性賦值 c.show();//調用Cat類的show()方法 c.shout();//調用Cat類的shout()方法 } } 輸出的結果是:
我是英國短毛貓,今年2歲喵喵喵~~~ 在上面代碼中 , 首先是定義了一個Animal類 , Cat類使用extends繼承Animal類. , 使得Cat類是Animal類的子類 , Animal作為一個父類 。我們便發現在子類并沒有定義name、age屬性和shout()方法 , 可以訪問到它們非私有屬性和方法 。說明了子類是可以擁有父類的所有非私有的屬性和方法 。
【一文帶你了解Java繼承規則 java中什么是繼承性】 二、繼承需要注意的問題
1.單重繼承是指任何一個類都只有一個單一的父類 。
例如:
classA1{ voidshow(){ System.out.println("A1"); } } classA2{ voidshow(){ System.out.println("A1"); } classBextendsA1,A2{ publicvoidshow(){ System.out.println("bbb"); } } 在上面代碼中是不合法的 , 任何一個類只有支持單繼承 , 不可以多重繼承 。也是就B類是不可以同時繼承A1和A2 。如果B b=new B(),那么b.show()是調用哪個一個父類方法呢?無法給出答案 , 所以是不能多重繼承 。
2.多重繼承是指一個類可以有一個以上的父類 , 它的靜態的數據屬性和操作從所有這些父類中繼承 。
3.多個類可以繼承一個父類 。
例如:
classA{} classBextendsA{} classCextendsA{} 在上面代碼中是合法的 , B類和C類都可以繼承A類的所有非私有屬性和方法 。
4.一個類的父類可以去繼承另外的父類 , 這就是多層繼承 。
例如:
classA{} classBextendsA{} classCextendsB{} 在上面代碼中 , 實現了多層繼承B類繼承A類 , B類是A類的子類 , C類繼承B類 , C類是B類的子類 , C類也是A類的子類 。在一個類是某個類父類的同時 , 也是另一個類的父類 。例如B類是A類的子類 , 也是C類的父類 。
三、總結
本文主要介紹了繼承、繼承需要注意的問題 。繼承是當一個類A能夠得到另一個類B中所有非私有的數據和操作的定義作為自己的部分或全部成分時 , 我們就叫做這兩個類之間具有繼承關系 。
本文介紹了繼承的實現方法 , 通過兩個案例幫助理解繼承的用法 。繼承是只支持單繼承 , 不支持多重繼承 。多個類可以繼承一個父類 。一個類的父類是可以繼承另外的父類 。希望大家通過本文的學習 , 對你有所幫助!
推薦閱讀
- 垃圾分類順口溜 了解一下
- 一文教你精準定位埋藏的寶藏 我的世界海洋之心在哪里
- 一文解決各種屏幕變暗的問題 iphone亮度突然變暗了
- 帶你全面了解地下城與勇士手游 dnf手游叫什么名字
- 一文講透個人ip的含義 個人ip是什么意思
- 紅薯干熱量為何這么高 一起來了解吧
- 帶你認識現有各種金的區別 白18k金是什么金
- 男人下半身短怎么搭配 這3種搭配方式了解一下
- 悼念詞怎么寫 帶你如何快速書寫
- 一文讀懂顯卡刷新率概念 顯示器刷新率越高越好嗎
