持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情 java抽象类,听其名,就大概知道着个类不是具体的一个类,那抽象类到底是什么样的?我们为什又需要抽象类呢?
引出
当父类的一些方法需要被声明,但是又不确定如何实现时,可将其声明为抽象方法,那么这个类就是抽象类。 我们举个例子来说明,当我们声明了一个动物类,却不知道某种动物要吃什么。就可以写一个抽象的eat。
abstract class Animal{
//抽象方法就是没有实现的方法,没有实现也就是没有方法体。
public abstract void eat();
}
解读代码
abstract 关键字来修饰一个类时,这个类就是抽象类
用abstract关键字来修饰一个方法时,这个方法就是抽象方法。访问修饰符 abstrac 返回类型 方法名(参数列表);
抽象类不像大家想的那样,只能包含抽象方法。它可以包含非抽象方法,构造器,静态属性等等。但是一个类要是有了abstract属性,那么这个类必须声明为abstract。
//抽象类不止可以包含抽象方法
abstract class Text{
public int a;
public Animalw(int a) {
this.a = a;
}
public void b(){
}
public static void c(){}
}
如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非这个类本身就是一个abstract类
最最重要的一点,大家一定要记好,抽象方法不能用private、final和static来修饰,因为这些关键字都是和重写相违背的
思考
由于子类继承了抽象类,现抽象类的所有抽象方法。所以抽象类的价值更多作用在于设计,当设计者设计好后,让子类继承并实现这些抽象类。