<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Java——繼承

          共 4025字,需瀏覽 9分鐘

           ·

          2021-06-27 22:14

          目錄

          • 繼承中變量訪問(wèn)特點(diǎn)
          • super關(guān)鍵字
          • 繼承中構(gòu)造方法訪問(wèn)特點(diǎn)
          • 繼承中成員方法訪問(wèn)特點(diǎn)
          • 方法重寫
          • 繼承的注意事項(xiàng)

          面向?qū)ο笕筇卣髦?,可以使子類具有父類相同的屬性和方法,還可在子類中重新定義,追加屬性和方法。
          格式:
          public class 子類名 extends 父類名{}
          • 繼承中子類的特點(diǎn):可以有父類的內(nèi)容,還可有自己特有的內(nèi)容。


          • 繼承的優(yōu)缺點(diǎn):
            優(yōu)點(diǎn):
            ①提高了代碼的復(fù)用性(多個(gè)類相同的成員可以放到同一個(gè)類中);
            ②提高了代碼的維護(hù)性(若方法的代碼需修改,修改一處即可)。
            缺點(diǎn):繼承讓類與類之間產(chǎn)生了關(guān)系,類的耦合性增強(qiáng),當(dāng)父類變化時(shí)子類也要跟著變化,削弱了子類的獨(dú)立性。


          • 使用繼承的情況:兩個(gè)類A、B,滿足A是B的一種,或B是A的一種,則A和B存在繼承關(guān)系。


          繼承中變量訪問(wèn)特點(diǎn)

          ①子類局部范圍找
          ②子類成員范圍找
          ③父類成員范圍找
          ④若都沒有則報(bào)錯(cuò)(不考慮父親的父親)
          /*測(cè)試類 */public class Demo {    public static void main(String[] args){        Son s = new Son();        s.show();    }}
          /*父類 */public class Father {    public int age = 40;}


          /*子類*/public class Son extends Father {    public int height = 170;    public int age = 20;
          public void show(){ int age = 30; System.out.println(age); System.out.println(height); }}


          super關(guān)鍵字

          用法與this關(guān)鍵字相似
          this:代表本類對(duì)象使用
          super:代表父類對(duì)象使用
          關(guān)鍵字
          訪問(wèn)成員變量
          訪問(wèn)構(gòu)造方法
          訪問(wèn)成員方法
          this
          this.成員變量,訪問(wèn)本類成員變量this(…),訪問(wèn)本類構(gòu)造方法this.成員方法(…)
          super
          super.成員變量,訪問(wèn)父類成員變量super(…),訪問(wèn)父類構(gòu)造方法super.成員方法(…),訪問(wèn)父類成員方法

          /*子類 */public class Son extends Father {
          public int age = 20;
          public void show(){ int age = 30; System.out.println(age);
          //訪問(wèn)本類的成員變量age System.out.println(this.age); //訪問(wèn)父類的成員變量age System.out.println(super.age); }}


          繼承中構(gòu)造方法訪問(wèn)特點(diǎn)

          子類中所有構(gòu)造方法都會(huì)訪問(wèn)父類中無(wú)參的構(gòu)造方法
          每一個(gè)子類構(gòu)造方法的第一條語(yǔ)句默認(rèn)為
          super()
          /*父類 */public class Father {
          public Father() { System.out.println("父類中無(wú)參構(gòu)造方法被調(diào)用"); }
          public Father(int age) { System.out.println("父類中帶參構(gòu)造方法被調(diào)用"); }}
          /*子類 */public class Son extends Father {
          public Son(){ //super(); super(20); System.out.println("子類中無(wú)參構(gòu)造方法被調(diào)用"); } public Son(int age){ //super(); super(20); System.out.println("子類中帶參構(gòu)造方法被調(diào)用"); }}
          /*測(cè)試類 */public class Demo {    public static void main(String[] args){        Son s = new Son();
          Son s2 = new Son(20); }}


          繼承中成員方法訪問(wèn)特點(diǎn)

          通過(guò)子類對(duì)象訪問(wèn)一個(gè)方法
          ①子類成員范圍找
          ②父類成員范圍找
          ③若都沒有就報(bào)錯(cuò)(不考慮父親的父親)
          /*父類 */public class Father {
          public void show(){ System.out.println("父類中show方法被調(diào)用"); }}
          /*子類 */public class Son extends Father {
          public void method(){ System.out.println("子類中method方法被調(diào)用"); } public void show(){ super.show(); System.out.println("子類中show方法被調(diào)用"); }}
          /*測(cè)試類 */public class Demo {    public static void main(String[] args){        Son s = new Son();        s.method();        s.show();        //s.text();//不存在該方法,報(bào)錯(cuò)    }}


          方法重寫

          子類中出現(xiàn)和父類中一摸一樣的方法聲明即方法重寫。
          應(yīng)用:當(dāng)子類需要父類的功能,而功能主體子類有自己特有內(nèi)容時(shí),可以重寫父類中的方法。
          @Override:注解,可以用來(lái)檢查重寫方法的方法聲明的正確性
          /*手機(jī)類 */public class Phone {    public void call(String name){        System.out.println("給"+name+"打電話");    }}
          /*新手機(jī)類 */public class NewPhone extends Phone {
          @Override public void call(String name){ System.out.println("開啟視頻"); super.call(name); }}
          /*測(cè)試類 */public class PhoneDemo {    public static void main(String[] args){        Phone p = new Phone();        p.call("zhangsan");
          NewPhone np = new NewPhone(); np.call("lisi"); }}
          注意事項(xiàng)
          • 私有方法不能重寫(父類私有成員子類不能繼承)


          • 子類方法全新啊不能更低(public > 默認(rèn) > 私有)


          /*父類 */public class Father {
          private void show(){ System.out.println("父類中show方法被調(diào)用"); } public void method(){ System.out.println("父類中method方法被調(diào)用"); }
          }
          /*子類 */public class Son extends Father {
          /* //私有方法不能重寫(父類私有成員子類不能繼承) @Override private void show(){ super.show(); System.out.println("子類中show方法被調(diào)用"); } */
          //子類方法全新啊不能更低(public > 默認(rèn) > 私有) @Override void method(){ System.out.println("子類中method方法被調(diào)用"); }}

          繼承的注意事項(xiàng)

          • Java中類只支持單繼承,不支持多繼承


          • Java中類支持多層繼承


          /*母親類*/public calss Mother {  public void dance(){    System.out.println("母親類");  }}
          /*爺爺類*/public class Granddad {  public void drink(){    System.out.println("爺爺類");  }}
          /*父親類*/public class Father extends Granddad {  public void cook(){    System.out.println("父親類");  }}
          public class Son extends Father{……}?
          public class Son extends Father, Mother{……}?








          往期推薦
          01

          實(shí)現(xiàn)一個(gè)小型的學(xué)生信息管理系統(tǒng)

          02

          ArrayList集合

          03

          辦公軟件基礎(chǔ)知識(shí)





          在看點(diǎn)一下
          瀏覽 38
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  啪啪啪导航 | 亚洲视频一区二区三区 | 极品国产 | 性爱福利社 | 伊人99大香蕉 |