1、什么是抽象类?
抽象类:本质就是从多对象中提取出来的共同点。多个对象具有相同功能,但是各自的功能不同,抽取时 只抽取了其中的功能,没有抽取主体。
- 例如:猪叫和狗叫,都是会叫,但是叫的声音,方法不同。所以抽象出来叫,不用细化细节。
- 抽象类的特点:
①:抽象类必须有abstract修饰,抽象类中的方法可以是抽象方法也可以是普通方法。
②:子类继承抽象类,子类可以是抽象类也可以是普通类,如果子类不重写父类的所有抽象方法,那子 类也必须是抽象类。
③:抽象类不能被实例化(new)没有意义,不能有{}也就是没有主体
注意事项:
①:抽象类中可以有构造方法,用于给子类对象初始化。
②:关键字abstract不能和final、static、private共存。(不可修饰、静态、私有和abstract冲突)
③:抽象类中可以有抽象或者非抽象方法。
例:
//定义动物抽象类
public abstract class AnimalCtrl {
// 定一个叫的方法()
public void shout() {
}
}
//狗继承动物抽象类
public class DogCtrl extends AnimalCtrl {
public void shout() {
System.out.println("汪汪汪");
}
}
//猫继承动物抽象类
public class CatCtrl extends AnimalCtrl {
public void shout() {
System.out.println("喵喵喵");
}
}
//逻辑执行
public class LogicCtrl {
public void start(AnimalCtrl amimal) {
// 动物园对象amimal可以是任何实现类的对象
amimal.shout();
}
}
执行结果:
总结:抽象类其实就是一种规范,为使用它的人规定一种模板,用于代码的维护和重用。