面向对象-抽象类-1

面向对象-抽象类-1

// 父类   动物
public abstract class Animal { //抽象类要用abstract关键字
    //abstract关键字要类和方法的权限修饰符后面!@@@
    public abstract void  eat(); //抽象方法没有具体的方法体
    public void sleep(){    //抽象类中可以有具体的方法,
        System.out.println("Z z z...");
    }
}
//------------------------
// 子类   猫
public class Cat extends Animal{
    @Override
    public void eat() {
        System.out.println("猫吃鱼.");
    }
}//抽象类的子类,要么重写父类的所有抽象方法
//---------------------------
// 子类    狗
public abstract class Dog extends Animal  {
}   //抽象类的子类,不重写父类的所有抽象方法,就得自己是抽象类.
//---------------------------
//测试类
/*
    1. 抽象类和抽象方法要用abstract关键字来修饰.
        abstract关键字要类和方法的权限修饰符后面!
    2. 抽象类里可以有非抽象方法.
    3. 抽象类不能实例化! 要用多态的形式通过子类对象实例化.
    4. 抽象类的子类,要么重写父类的所有抽象方法,要么自己是抽象类.
 */
public class Demo {
    public static void main(String[] args) {
        //Animal a = new Animal(); 抽象类不能实例化!
        //要访问抽象类的方法,要用多态的方式,子类访问.
        Animal a = new Cat();
        a.sleep();      //调用父类的具体方法
        a.eat();    //调用子类重写的方法
    }
}

posted @ 2023-01-29 11:44  大宝贝94106  阅读(28)  评论(0)    收藏  举报