抽象方法和非抽象方法

抽象类和抽象方法

  1. 基本概念:
    在面向对象的概念中所有的对象都是通过类来描述的,但并不是所有的类都是用来表述对象的,当一个类中没有包含足够的信息描绘一个具体的对象的时,这样的类就是抽象类
    例如:形状就是一个抽象的概念,不同子类形状面积的方法是不一样的,可提供抽象方法来被不同的子类所实现
  2. 抽象类和抽象方法的声明格式
    |center

  3. 抽象类和抽象方法的特点

    1. 抽象方法不允许直接实例化,换句话说,抽象类不能创建对象,他只能作为其他类的父类,但是可以通过向上转型,指向实例化。
    2. 抽象方法只能有声明,不能有实现,也就是只有方法头,没有方法体例如:abstract double area();
  4. 定义抽象类的意义在于

    1. 为其子类提供一个公共的类型(父类引用指向子类对象)
    2. 封装子类中重复的内容(成员变量和方法)
    3. 将父类设计成抽象类后,既可以借由父类继承关系限制子类的随意设计,在一定程度上避免了无意义父类的实例化
      ###抽象类的注意事项
  • 只要含有抽象方法,就一定得被定义成是抽象类
  • 抽象类可以没有抽象方法
  • 在抽象类中的成员方法可以包括一般方法和抽象方法
  • 抽象类不能被实例化,及时抽象类不包含抽象方法,这个抽象类也不能被创建实例。抽象类的构造方法主要是用于被其他子类调用
  • 一个类继承抽象类后,必须实现其所有的抽象方法,否则也是抽象类(只要有一个没有实现,就得定义为抽象类),不同的子类对父类的抽象方法可以有不同的实现
  • 即使父类是具体的,但是其子类也可以是抽象的。比如Object是具体的,但是可以创建抽象子类
  • abstract方法不能用static和private修饰;对于类,不能同时用final和abstract修饰。
-------------End Of This ArticleThank You For Reading-------------