一、static关键字
作用:用来修饰类的成员(属性、方法)
static关键字特点:
在类加载时就加载(运行、初始化)(类先于对象加载,程序中只加载一次,搞清楚看先后顺序)
静态初始化优于对象的
静态的成员(属性和方法)可以通过类名.操作符直接访问
注意:
1.只有在所有对象都是同一个属性值的时候我们才建议到属性上用static修饰
2.静态方法中不能有this关键字
总结:静态只能访问静态,非静态能访问静态
二、super关键字
super代表当前类的父类的对象,super == new Person();
super作用访问父类的成员
子类中所有的构造方法默认都会访问父类中的无参构造方法,默认有super(),如果父类没有无参构造子类会报错
子类构造方法执行前必须先执行父类的构造方法
三、final关键字
final代表最终的,是一个修饰符用来修饰类,方法,变量。
1.修饰类则表示这个类不能被继承。
2.修饰方法则表示这个方法不能被重写。
3.修饰变量,那么该变量的值一旦被指定,就不能再改变 。这个变量其实就是常量。命名规范:变量名所有字母大写。
注意:修饰的变量是引用变量时,不可以改变的是地址值,而不是堆内存中的值
四、代码块
静态代码块:类中方法外,类加载时执行,并且只执行一次,给类进行初始化
构造代码块:类中方法外,创建对象是执行,并且在构造方法前执行,可以把不同构造方法中相同共性的东西写在它里面。
五、继承
概述:
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
多个类可以称为子类,单独这个类称为父类或者超类。
通过 extends 关键字让类与类之间产生继承关系。
super代表当前类的父类的对象,super == new Person();
特点:
Java只支持单继承,不支持多继承,但支持多层继承。
一个类只能有一个父类,不可以有多个父类。
注意:
不要仅为了获取其他类中某个功能而去继承类与类之间要有所属( " is a " )关系,xx1是xx2的一种。
六、重写
定义:如果在子类有和父类相同的方法,子类的这个方法叫方法重写。
作用:父类的方法无法满足子类的需求。子类重写父类方法后,子类对象调用重写方法。
注意:
1.如果要构成方法的重写,返回值、方法名、参数列表要相同,修饰符的访问范围不能小于父类。public==》默认==》private 私有
2.静态的方法不存在重写,但是可以继承。
3.私有方法和构造方法不能被重写。
ctrl+鼠标左键,进入类或者方法
七、多态
作用:代码扩展能力增强。编程不要面向对象和面向具体编程,要面向父类面向抽象编程,代码的可扩展型才好。
类之间的转型:
向上转型(多态):子---->父(自动类型转换)动物 f = new 狗(); 狗 f = new 动物();
向下转型:父---->子(强制类型转换)
instanceof 运算符:判断对象属不属于某个类。
弊端:不能使用子类特有的功能
总结:
1.多态三要素:继承,方法重写,父类的引用指向子类的对象===》Father f = new Son();
2.如果重写,运行看右边,编译全部都是看左边的
3.向上默认转型,向下需要强转