package android.java.oop18; public class Animal { public void cry() { System.out.println("cry"); } }
package android.java.oop18; public class Dog extends Animal { }
package android.java.oop18; public class Cat extends Animal { @Override public void cry() { // super.cry(); System.out.println("貓🐱 喵喵喵..."); } }
package android.java.oop18; public class Test { public static void main(String[] args) { new Dog().cry(); new Cat().cry(); } }
package android.java.oop18; /** * 定義一個抽象類,此類 能夠有抽象方法,也能夠有普通方法,靜態方法 等等; */ public abstract class Animal { /** * 舉例:快看快聽 那個動物在叫呢, * 因爲這個動物 具體是什麼動物在叫 這個是不知道的,是抽象的模糊的 * 注意:我這裏只是抽象這個事物,我不執行事物,子類繼承重寫後 在去執行這個事物 */ protected abstract void cry(); }
package android.java.oop18; /** * Cat屬於動物類,具有動物的行爲; * Cat是 Animal 的一種 因此須要繼承 Animal */ public class Cat extends Animal { /** * Cat 🐱 具體的叫 行爲 */ @Override public void cry() { System.out.println("貓🐱 喵喵喵...."); } }
package android.java.oop18; /** * Dog屬於動物類,具有動物的行爲; * Dog是 Animal 的一種 因此須要繼承 Animal */ public class Dog extends Animal { /** * Dog 🐶 具體的叫 行爲 */ @Override protected void cry() { System.out.println("狗🐶汪汪汪...."); } }
package android.java.oop18; public class Test { public static void main(String[] args) { // 讓具體的狗對象 去叫 new Dog().cry(); // 讓具體的貓對象 去叫 new Cat().cry(); } }
package android.java.oop18; class MyDemo { public void showValue() { System.out.println("my is showValue()"); } public void showValue(String value1) { System.out.println("my is showValue(value1)"); } public void showValue(String value1, int value2) { System.out.println("my is showValue(value1, value2)"); } public int showValue(String value1, int value2, boolean isAndroidStudy) { System.out.println("my is showValue(String value1, int value2, boolean isAndroidStudy) return"); return 0; } public String showValue(String value1, int value2, boolean isAndroidStudy, double money) { System.out.println("my is showValue(String value1, int value2, boolean isAndroidStudy, double money) return"); return "返回值"; } public static void showValue(String value1, int value2, boolean isAndroidStudy, double money, boolean isOK){ System.out.println("my is showValue(String value1, int value2, boolean isAndroidStudy, double money) 靜態方法"); } } public class MethodDemo { public static void main(String[] s) { MyDemo myDemo = new MyDemo(); myDemo.showValue(); myDemo.showValue("值"); myDemo.showValue("值", 9); myDemo.showValue("值", 8, true); myDemo.showValue("值", 5, true, 10009987.00); MyDemo.showValue("值", 88, true, 9999945.00, true); } }
執行結果:java
覆蓋,複寫,重寫的規則:android
返回值 方法名 參數類型與數量 必須一致,而且,子類的修飾權限要大於等於父類(父類public 子類public 👌,父類protected 子類public 👌,父類public 子類protected ❌)ide