abstract(抽象的)作用:修饰类和方法
1.抽象类
特点:不能new出来
作用:
1.可以被当做父类使用(即可以被继承)
2.更自然使用多态
2.抽象方法
1.不能有方法体({})
2.必须出现在抽象类中
3.必须要被子类重写(即子类中必须继承抽象类且含有和抽象类重名的方法)
(除非子类也是一个抽象类)
static(静态的)作用:修饰属性、方法、代码块、内部类
1.修饰属性:静态变量、类属性
静态变量在多个对象之间是共享的(变量可以在多个对象之间是共享的)
eg:static int a;stu1.a=10;stu2.a=20;输出stu1.a=20,stu2.a=20
2.修饰方法静态方法、类方法
1.静态方法中无法直接访问成员方法和成员变量
2.在成员方法中可以访问静态变量和方法
3.静态方法中不能使用this和super关键字
4.静态方法可以被继承,但是不能被重写
5.静态方法不能使用abstract修饰
3.静态代码块
1.特点:在类加载的时候自动执行,只会执行一次且比构造方法先执行
2.场景:当代码只需要执行一次的时候(一般用于初始化的工作)
3.执行顺序:父类类加载>子类类加载>父类实例化(构造方法)>子类实例化