abstract 关键字的使用
1.abstract:抽象的
2.abstract:可以用来修饰的结构:类,方法
3.abstract:修饰类:抽象类
–此类不能实例化
–抽象类中一定有构造器,便于子类实例化的时调用(涉及:子类对象实例化的全过程)
–开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作
4.abstract修饰方法:抽象方法
–抽象方法只有方法的声明,没有方法体
–包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法的
–若子类重写了父类中所有的抽象方法后,此子类方可以进行实例化
–若子类没有重写父类中的所有抽象方法,则此类也是一个抽象类
5.abstract使用的注意点
–abstract不能用来修饰:属性,构造器等结构
如果可以修饰属性的话,那这个属性还要不要赋值的啊,这不是没有意义的么
如果可以修饰构造器的话,那么构造都没有方法体,怎么进行对类的初始化。还要去明确构造器重写。你见过构造器重写吗?
–abstract不能修饰私有方法,静态方法,final的方法,final的类
假设可以修饰私有方法,你见过私有方法可以被子类重写的么。如果可以,那个private权限符还有意义么。这不是矛盾的么
假设可以修饰静态方法,大家都知道静态方法是随着类加载的时候就已经加到方法区的啦,而用abstract声明的方法是没有方法体的,将一个没有方法体的方法加载到方法区,这样有什么意义呢?再说了 你们见过没有方法体的静态方法么。
假设可以修饰final的方法,final修饰的方法不能被重写,而你abstract修饰的方法是明确子类要重写该方法的。他喵的这不是矛盾了么,再加上连方法体都没有了,人家final都是是最终的方法啦。
匿名子类
模板设计模式的体会