日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(JAVA学习笔记) 类的继承,super,方法的重写,多态

發布時間:2025/3/20 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (JAVA学习笔记) 类的继承,super,方法的重写,多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 類的繼承,super,方法的重寫,多態
    • 1.類的繼承
      • 代碼演示:
    • 2.super和this
      • 代碼演示:
    • 3.方法的重寫
      • 代碼演示:
    • 4.多態
      • 代碼演示:

類的繼承,super,方法的重寫,多態

1.類的繼承

  • 繼承的本質是對某一批類的抽象,從而實現對世界更好的建模
  • extends的意思是“擴展”。子類是父類的擴展
  • JAVA中類只有單繼承,沒有多繼承!(一個兒子只有一個爸爸,但爸爸可以有多個兒子)
  • 繼承是類和類之間的一種關系。除此之外,類和類的關系還有依賴,組合,聚合等。
  • 繼承關系的兩個類,一個為子類(派生類),一個為父類(基類)。子類繼承父類,使用關鍵字extends來表示
  • 子類和父類之間,從意義上講應該具有“is a”的關系

代碼演示:

父類Person:

//Person 人:父類 //在java中,所有的類都間接或直接繼承Object類 public class Person /*extends Object*/{public int getMoney() {return money;}public void setMoney(int money) {this.money = money;}//public可被繼承,private則不能private int money = 10_0000_0000;public void say(){System.out.println("說了一句話");} }

子類Student:

//學生 is 人 :子類 //子類繼承了父類就會擁有父類的全部方法 public class Student extends Person{ //ctrl + h 顯示繼承關系 }

main方法:

public static void main(String[] args) {Student student = new Student();student.say();System.out.println(student.getMoney());}

結果:

2.super和this

super注意點:

  • super調用父類的構造方法,必須在構造方法中的第一個
  • super必須只能出現在子類的方法或者構造方法中!
  • super和this不能同時調用構造方法
  • super 和 this 的區別:

  • 代表的對象不同:this:本身調用這個對象。super:代表父類對象的引用
  • 前提:this:沒有繼承也可以使用。super:只有繼承條件才可以使用
  • 構造方法:this() 本類的構造。super():父類的構造。
  • 代碼演示:

    父類:Father類:

    public class Father {protected String name = "爸爸";public void print(){System.out.println("打印爸爸");} }

    子類:Son類:

    public class Son extends Father{private String name = "兒子";public void print(){System.out.println("打印兒子");}//方法的調用public void test1(){this.print();super.print();}//對象的調用public void test2(){System.out.println(this.name);System.out.println(super.name);} }

    main方法:

    public static void main(String[] args) {Son son = new Son();son.test1();son.test2();}

    輸出結果:

    3.方法的重寫

    重寫:需要有繼承關系,子類重寫父類的方法!

  • 方法名必須相同
  • 參數列表必須相同
  • 修飾符:范圍可以擴大但不能縮小; public>prtected>private
  • 拋出的異常范圍可以被縮小,但不能擴大;ClassNotFoundException -->Exception(大)
  • 重寫,子類的方法和父類必須一致,方法體不同
  • 為什么需要重寫?

    • 父類的功能,子類不一定需要,或者不一定滿足
      快捷鍵 :alt+inert ->override;

    代碼演示:

    父類B:

    public class B {public void test(){System.out.println("Hello,B");} }

    子類A:

    public class A extends B{@Overridepublic void test() {System.out.println("Hello,A");} }

    main方法:

    public static void main(String[] args) {A a = new A();a.test();}

    4.多態

    即同一方法可以根據發送對象的不同而采用不同的行為方式。

    一個對象的實際類型是確定的,但可以指向對象的引用類型有很多(父類,有關系的類)。

    多態存在的條件:

    • 有繼承關系
    • 子類重寫父類方法
    • 父類引用指向子類對象

    注意:多態是方法的多態,屬性沒有多態。

    代碼演示:

    父類Person:

    public class Person {public void run(){System.out.println("run");} }

    子類Student:

    public class Student extends Person{public void run(){System.out.println("son");} }

    main方法:

    public static void main(String[] args) {//一個對象的實例類型是確定的//但是可以指向的引用類型就不確定了:父類的引用指向子類//Student 能調用的方法都是自己的或者繼承父類的Student s1 = new Student();//Person 父類型,可以指向子類,但是不能調用子類獨有的方法Person s2 =new Person();//對象能執行哪些方法,主要看對象左邊的類型,和右邊關系不大s1.run();//如果子類重寫了父類的方法,執行子類的方法s2.run();}

    總結

    以上是生活随笔為你收集整理的(JAVA学习笔记) 类的继承,super,方法的重写,多态的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。