抽象abstract

1):一个类如果有抽象方法,这个类一定是抽象类。抽象类不一定有抽象方法。抽象方法是以分号结束。不是以{}。

抽象方法也不提供实现代码。

2):任何拓展抽象类的类都必须实现超类的所有抽象方法。除非子类也是抽象的。规则如下:

    抽象类的第一个具体子类必须实现超类的所有抽象方法。

3):抽象方法因为是不能被实例化的,所以使用的时候要先进行子类对其实例化。然后实现它的方法。

  abstract 和final 不能同时使用。

    原因:abstract设计指超类完全不知道子类在该方法中应该怎样运作。
                         final设计意味着超类知道子类在该方法中应该怎样运作的每件事情。

  abstract和private不能同时使用:

    原因:private方法甚至不能被子类看到(更不要说被继承)。所以它们也不能被重写。

  abstract和static不能同时使用:

    原因:static不需要实例就可以使用。

        abstract需要继承实现才能使用。

                 抽象是多态的一种体现,可以有子类来实现它。
            静态不能实例化,故不能被子类引用。
            你把一个类定义为abstract就是为了达到多态这个目的,如果abstract与static一起用的话,JVM则无法编译你要做什么。所以他们俩不能一起使用。

原文地址:https://www.cnblogs.com/bulrush/p/7053857.html