- 修饰符
- 多态
- 抽象
| 修饰符 | 同一个类中 | 同一个包中子类无关类 | 不同包的子类 | 不同包的无关类 |
|---|---|---|---|---|
| private | √ | |||
| 默认 | √ | √ | √ | |
| protected | √ | √ | √ | |
| public | √ | √ | √ | √ |
final关键字是最终的意思,可以修饰方法,变量,类
被final修饰的方法叫最终方法,最终方法是不可以被重写的
被final修饰的变量表明该变量时常量,不可以被重新赋值
被final修饰的类是最终类,不可以被继承
变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
变量是引用类型:final修饰值的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的
static 关键字是静态的意思,可以修饰成员方法,成员变量
static修饰的特点
被类的所有对象共享(这也是我们判断是否使用静态关键字的条件)
可以通过类名调用(当然也可以通过对象名调用,推荐使用类名调用)
成员变量编译看左边,执行看左边
成员方法编译看左边,执行看右边
为什么成员变量和成员方法的访问不一样呢?
因为成员方法有重写,而成员变量没有。
多态的好处:提高程序的扩展性
具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作。
多态的弊端:不能使用子类的特有功能,只能重写父类中的方法再调用。
多态中的转型
· 向上转型:从子到父,父类引用指向子类对象
· 向下转型:从父到子,父类引用转为子类对象
抽象类中不一定有抽象方法,但一个类里面有抽象方法,那它一定是抽象类
抽象类和抽象方法必须使用abstract关键字修饰
抽象类不能实例化
想要对抽象类进行实例化,要参照多态的方式,通过对子类对象实例化,这叫抽象多态
抽象类的子类要么重写抽象类中的所有抽象方法,要么是抽象类



