【JAVA】非访问修饰符 final、static 、abstract
非访问修饰符
final修饰符
final可以修饰类、属性和方法 <但不能用于修饰构造方法>
private不能被子类方法覆盖,private类型的方法默认是final类型的
final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。
Tips:final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。
1、final修饰类中的属性,声明变量时可以不赋值,且赋值后不能修改 <final属性可以在三个地方赋值:声明时、初始化块中、构造方法中。>
2、final修饰类中的方法。可以被继承,但继承后不能被重写。
3、final修饰类。类不可以被继承,也就是不能有子类
4、static final 用来修饰成员变量和成员方法,可简单理解为“全局常量”
static 修饰符
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块
1、被static修饰的成员变量和成员方法独立于该类的任何对象。它不依赖类特定的实例,被类的所有实例共享。
2、用public修饰的static成员变量和成员方法本质是全局变量和全局方法
abstract 修饰符
abstract 只能修饰类和方法,不能修饰变量 <类到对象是实例化,对象到类是抽象>
1、抽象类也是类,属于引用数据类型
2、抽象类定义语法
[修饰符列表] abstract class 类名 { }
3、abstractb不能和final、private、static联合使用,只能单独使用abstract或者联合public abstract使用
拓展1:访问控制修饰符
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
方法继承的规则:
-
父类中声明为 public 的方法在子类中也必须为 public。
-
父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
-
父类中声明为 private 的方法,不能够被子类继承。
-------------------------------------------------------------------------------------
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------