(1) abstract 、static 、final 可以修饰哪些内容?
abstract: 可以修饰类、方法
static:可以修饰属性、方法、静态代码块
final:可以修饰 变量(局部变量、实例变量、静态变量)、方法、类
(2) abstract 、static 、final 都不能用于修饰构造方法。
① abstract:抽象方法只能有方法的声明,没有方法实现,实现部分让子类完成;但是构造方法是不 能被子类继承,如果构造方法被abstract修饰,则子类无法完成构造方法的实现内容。
② static:static 和对象没有关系,但是构造方法是用于创建对象的,相互矛盾;同时static修饰的方法可以直接通过 类名.静态方法名(实参);但是构造方法不允许手动调用。
③ final:final方法是约束子类不能覆盖,但是构造方法本身就不允许子类继承,谈不上覆盖。
(3private、abstract、static、final是否能联合修饰成员方法?
a. private 和 abstract:private 修饰的方法不能被子类继承,asbtract修饰的方法需要通过子类覆盖给与方法的实现部分,联合修饰一个成员方法,矛盾。
b. static 和 abstract::static 修饰方法可以直接通过类名调用, 如果通过类名调用的是一个抽象方法 (半成品),jvm无法执行,不能联合修饰一个成员方法。
c. final 和 abstract:final修饰的方法可以被子类继承,但是不允许被覆盖;而 abstract修饰的方法的实现需要通过子类覆盖时给与实现。所以不能联合使用。