java-抽象类的特点

1、抽象类和抽象方法必须用abstract关键字修饰。

 -  abstract class 类名()

 -  public abstract void eat();

2、抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口。

 -  一个抽象类如果没有抽象方法,是可以定义为抽象类的。这么做的目的只有一个,就是不让其他类创建本类对象,交给子类完成。

3、抽象类不能实例化。那么抽象类如何实例化呢?

 -  按照多态的方式,由具体的子类实例化。其实这也是多态的一种,抽象类多态。

4、抽象类的子类

 -  要么是抽象类

 -  要么重写抽象类中的所有抽象方法

5、abstract不能和哪些关键字共存?

 -  abstract和static

    *  被abstract修饰的方法没有方法体。

    *  被static修饰的方法可以用类名.调用,但是类名.调用抽象方法是没有意义的。

 -  abstract和final

    *  被abstract修饰的方法强制子类重写

    *  被final修饰的方法不让子类重写,所以他两是矛盾的

 -  abstract和private

    *  被abstract修饰是为了让子类看到并强制重写

    *  被private修饰不让子类访问,所以他两是矛盾的

原文地址:https://www.cnblogs.com/hfumin/p/10141159.html