🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[success] # 抽象类 1. 抽象类主要指不能具体实例化的类并且使用abstract关键字修饰,也就是不能创建对象 2. 抽象类中可以有成员变量、构造方法、成员方法 3. 抽象类中可以没有抽象方法,也可以有抽象方法; 4. 拥有抽象方法的类必须是抽象类,因此真正意义上的抽象类应该是具有抽象方法并且使用abstract关键字修饰的类。 >[danger] ##### 抽象类实际意义 1. 抽象类的实际意义不在于创建对象而在于被继承 2. 当一个**类继承抽象类后必须重写抽象方法**,**否则该类也变成抽象类**,也就是抽象类对子类具有强制性和规范性,因此叫做模板设计模式。 >[danger] ##### 注意 1. **private**和 **abstract**关键字不能共同修饰一个方法 2. **fina**和 **abstract** 关键字不能共同修饰一个方法 3. **static**和 **abstract** 关键字不能共同修饰一个方法 >[danger] ##### 案例 * 抽象类 ~~~ public abstract class AbstractTest { private int cnt; public AbstractTest() { } public AbstractTest(int cnt) { setCnt(cnt); } public int getCnt() { return cnt; } public void setCnt(int cnt) { this.cnt = cnt; } // 自定义抽象方法 public abstract void show(); public static void main(String[] args) { // 抽象类不能被实例化 // AbstractTest at = new AbstractTest(); } } ~~~ * 继承抽象类 ~~~ public class SubATest extends AbstractTest { // 重写抽象方法 @Override public void show() {} public static void main(String[] args) { // 直接声明 SubATest sub = new SubATest(); // 使用多态类型为抽象类 AbstractTest sub1 = new SubATest(); } } ~~~