1):一个类如果有抽象方法,这个类一定是抽象类。抽象类不一定有抽象方法。抽象方法是以分号结束。不是以{}。
抽象方法也不提供实现代码。
2):任何拓展抽象类的类都必须实现超类的所有抽象方法。除非子类也是抽象的。规则如下:
抽象类的第一个具体子类必须实现超类的所有抽象方法。
3):抽象方法因为是不能被实例化的,所以使用的时候要先进行子类对其实例化。然后实现它的方法。
abstract 和final 不能同时使用。
原因:abstract设计指超类完全不知道子类在该方法中应该怎样运作。
final设计意味着超类知道子类在该方法中应该怎样运作的每件事情。
abstract和private不能同时使用:
原因:private方法甚至不能被子类看到(更不要说被继承)。所以它们也不能被重写。
abstract和static不能同时使用:
原因:static不需要实例就可以使用。
abstract需要继承实现才能使用。
抽象是多态的一种体现,可以有子类来实现它。
静态不能实例化,故不能被子类引用。
你把一个类定义为abstract就是为了达到多态这个目的,如果abstract与static一起用的话,JVM则无法编译你要做什么。所以他们俩不能一起使用。