抽象方法:仅有声明没有方法体

    1. abstract void f();

    抽象类:包含抽象方法的类叫做抽象类,但是抽象类不一定包含抽象方法
    有抽象方法一定是抽象类;但定义一个没有抽象方法的类也是可以的,只是为了阻止其实例化

    1. abstract class Ab{
    2. void h(){
    3. System.out.println("我是普通方法");
    4. }
    5. }
    6. public class Main extends Ab{
    7. public static void main(String[] args) {
    8. Main main = new Main();
    9. main.h();
    10. }
    11. }
    12. 输出:
    13. 我是普通方法

    要想从一个抽象类继承,并且创建一个它的实例,就必须为抽象类中所有抽象方法提供方法定义(为抽象方法写方法体),如果不这样做那么导出类也必须是抽象类

    1. abstract class Ab{
    2. abstract void f();
    3. void h(){
    4. System.out.println("我是普通方法");
    5. }
    6. }
    7. public class Main extends Ab{
    8. public static void main(String[] args) {
    9. Main main = new Main();
    10. main.f();
    11. }
    12. @Override
    13. void f() {
    14. System.out.println("重写抽象方法");
    15. }
    16. }
    17. 输出:
    18. 重写抽象方法