JavaEE-09-抽象类(Java)

抽象关键字:

  abstract

抽象类定义:

  在面向对象的概念中,所有的对象都是通过类来描绘的。

  但是反过来,并不是所有的类都是用来描绘对象的。

  如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

    抽象方法:一个没有方法体的方法应该定义为抽象方法。(空方法体也算方法体)

    抽象类:一个类中如果有抽象方法,该类必须定义为抽象类。

抽象类特点:

  1.方法只有声明没有方法体时,该方法就是抽象方法,需要被abstract修饰。

  抽象方法必须定义在抽象类中,所以该类必须也被abstract修饰。

  2.抽象类不可以被实例化。(因为调用抽象方法没意义)

  3.抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

  4.抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

  5.构造方法,类方法(用static修饰的方法)不能声明为抽象方法。

抽象方法注意事项:

  1.abstract不能和private同时使用。

    因为抽象方法没有方法体,如要使用它,就必须有个子类来继承它,子类的方法覆写抽象方法。

    如果方法是private,那就没办法进行覆写了。

  2.abstract不能和final同时使用。

    同理,final方法不可修改,不可继承。

  3.abstract不能和static同时使用。

    因为static方法必须有方法体,而abstract方法没有方法体。

抽象类和一般类的异同点:

  相同点:抽象类和一般类都是用来描述事物的,都在内部定了成员。

  不同点:

    1.一般类有足够的信息描述事物;

     抽象类描述事物的信息可能不足。

    2.一般类中不能定义抽象方法,只能定义非抽象方法;

     抽象类中可定义抽象方法,同时也可以定义非抽象方法。

    3.一般类可以被实例化;

     抽象类本身不可以被实例化。(但是,可通过多态的方式,靠子类来实现实例化)

posted @ 2019-06-04 11:57  benon  阅读(222)  评论(0)    收藏  举报