定义抽象类,就一定会定义抽象方法,抽象方法没有方法体{},就证明抽象方法 是不运行的,抽象方法 是给子类继承覆盖运行的,
子类继承->抽象类 就必须覆盖抽象方法,否则编译都失败;
水果案例:
定义水果抽象类 FruitAbstract:
package android.java.oop16; /** * 定义一个抽象类,此类 可以有抽象方法,也可以有普通方法,静态方法 等等; */ public abstract class FruitAbstract { /** * 去买水果,具体什么水果,还不知道,属于抽象的,模糊的, * 所以定义成抽象方法,具体是什么水果,让子类去覆盖实现 */ public abstract void info(); }
描述🍌香蕉对象:
package android.java.oop16; /** * 描述香蕉对象 * 香蕉是 水果 中的一种 所以继承水果 */ public class Banana extends FruitAbstract { /** * 香蕉🍌 */ @Override public void info() { System.out.println("香蕉🍌剥皮后,才能吃...."); } }
描述🍉西瓜对象:
package android.java.oop16; /** * 描述西瓜对象 * 西瓜是 水果 中的一种 所以继承水果 */ public class Tsama extends FruitAbstract { /** * 西瓜🍉 */ @Override public void info() { System.out.println("西瓜🍉要切开后,才能吃..."); } }
描述🍊橘子对象:
package android.java.oop16; /** * 描述橘子对象 * 橘子是 水果 中的一种 所以继承水果 */ public class Orange extends FruitAbstract { /** * 橘子🍊 */ @Override public void info() { System.out.println("橘子🍊要剥皮后,才能吃...."); } }
main测试方法:
package android.java.oop16; public class Test { public static void main(String[] args) { Banana banana = new Banana(); banana.info(); Tsama tsama = new Tsama(); tsama.info(); new Orange().info(); } }
执行结果:
动物案例:
AnimalAbstract:
package android.java.oop17; /** * 定义一个抽象类,此类 可以有抽象方法,也可以有普通方法,静态方法 等等; */ public abstract class AnimalAbstract { /** * 举例:快看快听 那个动物在叫呢, * 由于这个动物 具体是什么动物在叫 这个是不知道的,是抽象的模糊的 */ public abstract void cry(); }
Cat:
package android.java.oop17; /** * Cat属于动物类,具备动物的行为; * Cat是 Animal 的一种 所以需要继承 Animal */ public class Cat extends AnimalAbstract { /** * Cat 🐱 具体的叫 行为 */ @Override public void cry() { System.out.println("猫🐱 喵喵喵...."); } }
Cattle:
package android.java.oop17; /** * Cattle属于动物类,具备动物的行为; * Cattle是 Animal 的一种 所以需要继承 Animal */ public class Cattle extends AnimalAbstract { /** * Cattle 🐂 具体的叫 行为 */ @Override public void cry() { System.out.println("牛 🐂 槑槑篾...."); } }
Dog:
package android.java.oop17; /** * Dog属于动物类,具备动物的行为; * Dog是 Animal 的一种 所以需要继承 Animal */ public class Dog extends AnimalAbstract { /** * Dog 🐶 具体的叫 行为 */ @Override public void cry() { System.out.println("狗🐶汪汪汪...."); } }
main测试方法 让具体的 动物去做事情:
package android.java.oop17; public class Test { public static void main(String[] args) { /** * 举例:快看快听 那个狗🐶在叫 */ new Dog().cry(); /** * 举例:快看快听 那个猫🐱在叫 */ new Cat().cry(); /** * 举例:快看快听 那个牛🐂在叫 */ new Cattle().cry(); } }
执行结果: