美文网首页
技术问 - 什么是抽象类

技术问 - 什么是抽象类

作者: sexyhair | 来源:发表于2019-03-06 20:50 被阅读0次

    抽象方法:没有具体方法体的方法,那么此方法就是抽象方法
    抽象类:一个类中如果有抽象方法,则该类必须是抽象类;

    抽象类特点:

    A:必须使用abstract关键字修饰
    B:抽象类中不一定有抽象方法,但是包含抽象方法的类必须定义为抽象类
    C:抽象类实例化是通过其子类实例化的(多态),本身不能通过new实例化,因为其不是具体的;
      抽象类不能通过new实例化,那么构造方法的意义:抽象类的构造方法是用于子类访问父类数据的初始化;
    D:抽象类的子类:
        1)  如果子类不能重写抽象类的全部抽象方法,那么此子类还是抽象类
        2)  如果子类重写了所有的抽象方法,那么此子类是一个具体的类;
    

    抽象类的成员变量、成员方法、构造方法之间的关系:

    成员变量:与普通类的成员变量一样
    构造方法:用于子类访问父类数据的初始化;
    成员方法:既可以是抽象的,也可以是非抽象的
        抽象方法:强制要求子类做的事情
        非抽象方法:子类继承的事情,提供代码的复用性
    

    abstract和private、final、static不能共存

    与private的冲突:
       private修饰不能被继承继而不能重写,
       abstract修饰的方法是要求必须重写的;
    
    与final的冲突:
      与private一样的道理;
    
    与static的无意义:
      abstract方法是没有方法体的,
      static随着类的加载而加载,加载一个没有方法体的方法,无意义;
    

    一个类如果没有抽象方法可以定义为抽象类吗?意义何在?

    可以:作用是不让创建对象

    相关文章

      网友评论

          本文标题:技术问 - 什么是抽象类

          本文链接:https://www.haomeiwen.com/subject/hhmxpqtx.html