abstract 抽象类
加abstact修饰符就会变成抽象类,抽象类里所有方法都隐形被public static修饰。可写可不写。
相当于自己定义方法名,继承的子类(子类为抽象类除外)去实现。(跟接口相似概念)
抽象类的注意点:
- 抽象类可以不存在方法,但抽象方法存在的类一定是抽象类。
- 抽象类不能被new实例,只有被继承(毕竟自己有可能没有方法体)
- 如果抽象类中存在抽象方法,那继承他的子类就必须重写该抽象方法
- 除了特殊继承他的子类也是 抽象类。不然就必须实现重写父类的抽象方法。
- 抽象类中的方法,可以只有名字,可以没有方法体
- 抽象类的方法只可以由继承的子类去实现
抽象类俗解:
相当于建立一个模型,分出项目名称,有些可以自己做,有些定义了可以让别人做。
跟接口区别:
- 一个类只能继承一个抽象类。但一个类可以接入多个接口。(接口优势)
- 抽象类可以写普通方法。但接口只能存方法名,不可以存在方法体。