(JAVA学习笔记) 类的继承,super,方法的重写,多态
生活随笔
收集整理的這篇文章主要介紹了
(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 和 this 的區別:
代碼演示:
父類: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.方法的重寫
重寫:需要有繼承關系,子類重寫父類的方法!
為什么需要重寫?
- 父類的功能,子類不一定需要,或者不一定滿足
快捷鍵 :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,方法的重写,多态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (Oracle学习笔记) sql语言
- 下一篇: oracle 错误: ORA-1289