JAVA 抽象类

抽象类
abstract是一个修饰符
可以修饰方法,可以修饰类
1、当我们多个类存在相同的功能时,但是功能的主体不同,这时我们进行向上抽取,只抽取功能的定义不抽取功能的主体

抽象类的特点:
1、抽象方法一定要在抽象类中
2、抽象类和抽象方法必须要被abstract关键字修饰
3、抽象的类是不能被创建对象的,因为调用抽象的方法没意义
4、抽象类中的方法要被使用,必须由子类重写抽象类中的方法,然后创建子类对象来调用
5、抽象类中可以定义非抽象的方法,有时我们需要此类不能被new关键字创建对象时,可以用abstract将此类变成抽象类
6、子类如果只重写一部分的抽象方法,那么该子类还是一个抽象类,如果抽象类的方法要被使用,子类必须重写抽象类中的所有方法

值得注意:抽象类和普通的类没有太大的不同。
1、抽象类无法通过new关键字创建对象
2、抽象类里面可以有抽象的方法

abstract class Animal{    //如果方法是抽象的,那么类也必然要抽象,要用abstract修饰,类是抽象的,方法可以不抽象
    abstract void sing();    //抽象的方法,去掉大括号,用abstract关键字修饰
}
class Cat extends Animal{
    void sing(){
        System.out.println("喵喵唱歌");
    }
}
class Dog extends Animal{
    void sing(){
        System.out.println("汪汪唱歌");
    }
}
public class Test{
    public static void main(String[] args){
        Animal c = new Cat();
        c.sing();
    }
}
原文地址:https://www.cnblogs.com/phpyangbo/p/java-abstract.html