抽象类
抽象(abstract)
当父类的某些方法,需要声明,但是又不确定如何实现时(没有方法体),可以将其声明为抽象方法,那么这个类就是抽象类
public abstract void eat ;
当该类存在抽象方法时,需要将该类声明为abstract类
介绍
1,用 abstract 关键字来修饰一个类时,这个类就叫抽象类
访问修饰符 abstract 类名{
}
2,用abstract 关键字来修饰一个方法时,这个方法就是抽象方法
访问修饰符 abstract 返回类型 方法名(参数列表);
3,抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现抽象类
4,抽象类,是考官比较爱问的知识点,在框架和设计模式使用较多
注意事项和细节讨论
1,抽象类不能被实例化
2,抽象类不一定要包含 abstract方法。也就是说抽象类可以没有abstract 方法
3,一旦类包含了 abstract方法,则这个类必须声明为abstract
4,abstract 只能修饰类和方法,不能修饰属性和其他的
5,抽象类可以有任意成员【因为抽象类还是类】,比如:非抽象方法、构造器、静态属性等等。
6,抽象方法不能有主体,即不能实现。(也就是不能有{})
7,如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为 abstract类。(所谓实现方法,就是有方法体,即{})
8,抽象方法不能使用private、final 和 static 来修饰,因为这些关键字都是和重写相违背的***