abstract:抽象的
1.可以用来修饰:类、方法
2.具体的:
abstract修饰类:抽象类
>此类不能实例化
>抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程)
>开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作—>抽象的使用前提:继承性
abstract修饰方法:抽象方法
抽象方法只方法的声明,没方法体
包含抽象方法的类,一定是一个抽象类,反正,抽象类中可以没有抽象方法的
若子类重写了父类中的所有的抽象方法后,此子类可实例化
若子类没有重写父类中的所有抽象方法,则此子类也是一个抽象类,需要abstract修饰
3.注意点
[1]abstract不能用来修饰:属性、构造器等结构
[2]abstract不能用来修饰私有方法、静态方法、final的方法、final的类
【注】static为啥不能和abstract一起用?
分析:staic修饰的相当于类所独有的吗,可以直接被调用,而abstract修饰的得去被子类重写,然后让子类调用,这样才可以用。那么当父类的一个方法被static和abstract同时修饰,父类按理说可以直接调用此方法,但是abstract必须让子类重写才能调用,因此此处发生了矛盾,故static为啥不能和abstract不能够一起使用。
4.abstract的应用举例:
如:IO流中设计到的抽象类:InputStream/OutputStream/Read /Writer。
在其内部定义了抽象的read()、write()方法。