重寫
-
重寫:重寫需要有繼承關系,子類重寫父類的方法!
1、方法名必須相同
2、引數串列必須相同
3、修飾符:范圍可以擴大
public > Protected > Default > private4、拋出的例外:范圍可以被縮小,但不能擴大
ClassNotFoundException ---> Exception(大)5、注意:重寫,子類的方法和父類必須一致,方法體不同!
-
注意:
重寫,子類的方法和父類必須一致,方法體不同!
快捷鍵:Alt + Insert 選擇 override
為什么需要重寫:父類的功能,子類不一定需要,或者不一定滿足
-
靜態的方法和非靜態的方法區別很大
靜態方法:方法的呼叫只和左邊(定義的資料型別)有關
非靜態方法:重寫
關鍵字:Override 重寫 ——> 子類重寫父類的方法

-
實體:
1 package oop.demo8; 2 3 /** 4 * 重寫:重寫需要有繼承關系,子類重寫父類的方法! 5 * 1.方法名必須相同 6 * 2.引數串列必須相同 7 * 3.修飾符:范圍可以擴大 8 * public > Protected > Default > private 9 * 4.拋出的例外:范圍可以被縮小,但不能擴大 10 * ClassNotFoundException ---> Exception(大) 11 * 注意:重寫,子類的方法和父類必須一致,方法體不同! 12 * 快捷鍵:Alt + Insert 選擇override 13 * 為什么需要重寫: 14 * 父類的功能,子類不一定需要,或者不一定滿足 15 */ 16 public class Application { 17 18 public static void main(String[] args) { 19 20 /** 21 * 靜態的方法和非靜態的方法區別很大 22 * 靜態方法: 23 * 方法的呼叫只和左邊(定義的資料型別)有關 24 * 非靜態方法: 25 * 重寫 26 */ 27 A a = new A(); 28 a.test(); //呼叫A類test方法 29 30 //父類的參考指向了子類 31 B b = new A(); 32 b.test(); //呼叫B類test方法 33 34 System.out.println("------ 分隔符 ------"); 35 36 A a2 = new A(); 37 a2.test2(); //呼叫A類test2方法 38 39 //父類的參考指向了子類 40 B b2 = new A(); //子類重寫了父類的方法 41 b2.test2(); //呼叫B類的test2方法 42 43 } 44 45 }
父類
-
初識:
父類:
重寫都是方法的重寫,和屬性無關
-
示例:

-
實體:
1 package oop.demo8; 2 3 /** 4 * 父類 5 * 重寫都是方法的重寫,和屬性無關 6 */ 7 public class B { 8 9 public static void test(){ 10 System.out.println("B=>test()"); 11 } 12 13 public void test2(){ 14 System.out.println("B=>test()"); 15 } 16 17 }
子類:extends關鍵字繼承父類
-
初識:
子類:
子類繼承父類
-
示例:

-
實體:
1 package oop.demo8; 2 3 /** 4 * 子類 5 * 繼承 6 */ 7 public class A extends B { 8 9 public static void test(){ 10 System.out.println("A=>test()"); 11 } 12 13 /** 14 * Override重寫 15 * 子類重寫父類的方法 16 */ 17 @Override 18 public void test2() { 19 System.out.println("A=>test()"); 20 } 21 22 }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/169006.html
標籤:其他
