一文帶你了解Java繼承規則 java中什么是繼承性


一文帶你了解Java繼承規則 java中什么是繼承性

文章插圖
一、繼承的概念
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中所有非私有的數據和操作的定義作為自己的部分或全部成分時 , 我們就叫做這兩個類之間具有繼承關系 。
本文介紹了繼承的實現方法 , 通過兩個案例幫助理解繼承的用法 。繼承是只支持單繼承 , 不支持多重繼承 。多個類可以繼承一個父類 。一個類的父類是可以繼承另外的父類 。希望大家通過本文的學習 , 對你有所幫助!

    推薦閱讀