中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java面向對象之繼承的原理與特點是什么

發布時間:2021-10-25 18:01:17 來源:億速云 閱讀:331 作者:iii 欄目:開發技術

這篇文章主要講解了“Java面向對象之繼承的原理與特點是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java面向對象之繼承的原理與特點是什么”吧!

目錄
  • 一、前言

  • 二、繼承

    • 什么是繼承呢?

    • 繼承的好處與弊端

    • 繼承的使用場景?

      • 繼承的格式:

    • 繼承的特點:

      • 重寫的概念:

        • super關鍵字

          • super和this的比較

          一、前言

          前面我也們講述了相關封裝的,現在我們先認識的繼承的概念和使用。

          二、繼承

          什么是繼承呢?

          繼承在顯示生活中也不少見,比如繼承財產之類的,在我們java學習中也有類似的使用,

          繼承者稱作子類也叫派生類,被繼承者稱作父類、基類或超類,objec類是所有類的父類

          (后期介紹)

          繼承的好處與弊端

          好處:就是提高了代碼的維護性(多個代碼需要修改,只需要修該一處即可)。

          提高了代碼的復用性(多個相同的成員可以方法到同一個類中)

          弊端:繼承的缺點就是使代碼之間的耦合度高,修改父類子類也會跟著變化

          繼承的使用場景?

          兩個有從屬關系的,比如貓和動物,學生和人等。

          繼承的關鍵詞是extends。

          繼承的格式:

          public class 子類名 extends 父類名{}

          舉例:

          public class Cat extends Animal{}//貓繼承動物類

          繼承的特點:

          子類可以擁有父類的非私有方法和成員變量,也可以重寫父類的非私有(private修飾的)方法。所有子類的方法都默認訪問父類的無參構造

          重寫的概念:

          重寫是子類重述父類中的非私有方法,重寫的一般特點是方法名相同,格式相同,返回類型相同、方法體不同

          如:

          fu類中:

          public class fu{
            public void  play(){
             System.out.println("fu喜歡打羽毛球");
            }
          }

          zi類中:

          public class  zi extends fu{
              public void play(){//對父類的方法重寫
             System.out.println("zi喜歡打籃球");
              }
          }

          還可以這么寫,訪問權限需要zi類大于等于fu類

          fu類中修飾是默認:

          public class fu{
             void eat(){
             System.out.println("fu中eat方法");
            }
          }

          zi類中:

           public class Zi extends Fu {
              @Override//檢測方法重寫的正確性
             public void eat() {
                  System.out.println("zi中的eat方法");
              }
          }

          zi類中重寫:

           public class Zi extends Fu {
             // @Override寫不寫不會影響,這個只是起到輔助作用
             void eat() {
                  System.out.println("zi中的eat方法");
              }
          }

          zi還可以:

           public class Zi extends Fu {
              @Override
            protected  void eat() {
                  System.out.println("zi中的eat方法");
              }
          }

          修飾訪問關系:public>protected>默認(不寫)>private

          當父類的權限修飾符是默認(也就是不寫修飾符),子類重寫的修飾方法可以是默認和

          默認之前的以此類推。注:當父類的權限修飾符是private時,那子類可不是private

          之前的。當父類被private修飾時,子類不能重寫此類方法。

          super關鍵字

          當子類中的成員變量和父類中成員變量同名時,我們想使用父類中的成員變量時,

          或者我們重寫了父類中方法時,我們還想調用父類中的方法時。此時我們就要使用super

          關鍵字來調用父類中的成員。

          super和this的比較

          super和this的使用原理差不多,this是解決了局部變量和成員變量同名時,局部變量對

          成員的覆蓋super是解決子類對父類的覆蓋。

          當局部變量,成員變量,父類中的變量同名時,訪問的是局部變量。可以用this和super改變。

           public class fu{
            public int age=40; 
          public fu(){}//無參構造
          public fu(int age){//帶參構造
            this.age=age;}
            public void eat(){
             System.out.println("fu中eat方法");
            }
          }
           
          public class Zi extends Fu {
            public  int age=18;
          public Zi(){}
          public Zi(int age){
            this.age=age;}
              public void eat() {
                super.eat();
                  System.out.println("zi中的eat方法");
              }
          public void show(){
            int age=1;
            System.out.println(age);//1局部變量的值
            System.out.println(this.age);//18子類成員中的值
            System.out.println(super.age);//40父類中的值
          }
           
          public class Demo{
            public static void main(String[] args){
              zi z=new zi();
               z.eat();
               z.show();
            }
           
          }

          感謝各位的閱讀,以上就是“Java面向對象之繼承的原理與特點是什么”的內容了,經過本文的學習后,相信大家對Java面向對象之繼承的原理與特點是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

          向AI問一下細節

          免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

          AI

          子长县| 封丘县| 砚山县| 长岭县| 普兰县| 平谷区| 商洛市| 永仁县| 修水县| 安新县| 赤水市| 石台县| 历史| 渑池县| 灵寿县| 荣昌县| 中西区| 嘉祥县| 萨嘎县| 和龙市| 利辛县| 色达县| 沙湾县| 西盟| 乌拉特中旗| 榆树市| 溧水县| 封丘县| 大邑县| 旌德县| 北票市| 临江市| 共和县| 拉萨市| 崇义县| 常熟市| 达尔| 会东县| 永定县| 泽普县| 西昌市|