Java基础(10) | 抽象

#什么是抽象方法

加上abstract关键字,然后去掉方法体,直接分号结束
抽象方法所在的类必须是抽象类才行,在class之前写上abstract即可

public abstract class Animal{       //抽象类
    public abstract void eat();     //抽象方法
}

# 注意事项

抽象方法所在的类必须是抽象类
抽象类不一定有抽象方法

# 如何使用

1.不能直接创建new抽象类对象
2.必须先用一个子类来继承抽象父类
3.子类必须覆盖重写抽象父类当中所有的抽象方法 //如果子类没有重写所有抽象方法,那么子类也必须是抽象的
4.创建抽象对象

#动物祖宗类

package com.leerep.javabase.abstractDemo;

public abstract class Animal {      //抽象类
    public Animal(){
        System.out.println("动物祖宗类抽象方法");
    }
    public abstract void eat();         //抽象方法
}

# 猫类

package com.leerep.javabase.abstractDemo;

public class Cat extends Animal {
    public Cat() {
        System.out.println("猫类抽象方法      im a cat");
    }

    @Override
    public void eat() {
        System.out.println("猫吃鱼");      //覆盖重写
    }
}

# 狗类

package com.leerep.javabase.abstractDemo;

public class Dog extends Animal {
    public Dog(){
        System.out.println("狗类构造方法       im a dog" );
    }
    @Override
    public void eat() {
        System.out.println("狗吃骨头");
    }
}

# Demo

package com.leerep.javabase.abstractDemo;

public class Demo {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.eat();

        System.out.println("===================");
        Dog dog = new Dog();
        dog.eat();
    }
}

原文地址:https://www.cnblogs.com/leerep/p/14389348.html