static
1、静态的变量:
- 由static修饰;
- 属于类中,存储在方法区中,只有一份;
- 通过 类名. 来调用;
- 所有的对象所共享的资源的时候(图片、视频、音频等)。
2、静态方法:
- static修饰;
- 属于类中,存储在方法区,只有一份;
- 通过 类名. 来调用;
- 何时用? 方法的操作只与参数相关,但与对象无关。
3、静态代码块:
- 属于类中,在类被加载的期间进行自动调用,类只能被加载一次,所以静态代码块也只执行一次;
- 初始化、加载静态资源的时候调用。
抽象类应用
1、抽象方法:abstract修饰;只有方法的定义,没有方法的实现。
2、抽象类:
- abstract修饰;
- 包含抽象方法的类,必须是抽象类。
- 抽象类是不能被实例化的;
- 抽象类是不需要被继承的,
- 继承了抽象类的子类:重写所有的抽象方法,变普通类为抽象类。
3、意义:
- 封装了子类中所共有的属性和行为;-----代码重用
- 为所有的子类提供一种统一的类型;-----向上造型
- 可以包含抽象方法,为所有的子类提供统一的入口;
扩展:
- 设计规则:
- 1、将所有子类(派生类)所共有的属性和行为,抽象到超类中。-----抽共性
- 所有子类行为都一样,设计为普通方法;
- 所有子类行为都不一样,设计为抽象方法。
修饰符 | 本类 | 同一个包中的类 | 子类 | 其他类 |
---|---|---|---|---|
public | 可以访问 | 可以访问 | 可以访问 | 可以访问 |
protected | 可以访问 | 可以访问 | 可以访问 | 不能访问 |
默认 | 可以访问 | 可以访问 | 不能访问 | 不能访问 |
private | 可以访问 | 不能访问 | 不能访问 | 不能访问 |
接口的特点
1、接口不能被实例化;
2、接口是可以多实现的,但是继承是单继承;
3、接口中是可以定义方法的,方法也有固定的修饰词: public abstract
4、子类必须覆盖接口中所有的抽象方法,子类才可以实例化,否则子类是一个抽象类;
5、接口中是可以定义变量的,变量也有固定的修饰词: public abstract
也称为常量;值不发生变化。
final:修饰符
1、修饰符,可以用于修饰类、成员变量、成员方法;
2、只要被final修饰的类,不能被继承,不能有子类;
3、final修饰的方法,不能被重写;
4、final修饰的变量,不可以被修改,是常量;