abstract可以修饰:类、方法
1.abstract修饰方法(抽象方法) :
抽象方法只有方法的声明,没有方法体
抽象方法所在的类必须为抽象类
2.abstract修饰类(抽象类):
1.抽象类不能被实例化。
2.抽象类也有构造器。因为在子类对象的实例化过程中,子类一定会调用父类的构造器
3.非抽象子类继承抽象类后必须重写抽象父类中的所有抽象方法
4.如果非抽象子类不想重写抽象父类中的方法,那么该子类也需要变成抽象子类。
5.抽象子类可以重写抽象父类中的抽象方法,如果直接抽象父类重写了间接抽象父类中的抽象方法那么非抽象子类就不需要再重写该抽象方法
6.抽象类中不一定有抽象方法。
abstract class A{
public abstract void info();//抽象方法
}
class B extends A{
@Override
public void info(){
}
}
class C extends B{//直接抽象父类重写了间接抽象父类的方法
}
abstract不能修饰:
变量、代码块、构造器、私有方法静态方法、final 修饰的方法、final 修饰的类