定义抽象类,就一定会定义抽象方法,抽象方法没有方法体{},就证明抽象方法 是不运行的,抽象方法 是给子类继承覆盖运行的,

子类继承->抽象类 就必须覆盖抽象方法,否则编译都失败;

 


 

 

 

水果案例: 

定义水果抽象类 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();

    }

}

 

执行结果: