一、继承(所属关系)特点
1、单继承,可以使用多层继承来实现多继承
2、所有的对象的都继承Object
3、继承父类会将父类中所有的数据全部继承,包括私有的数据也能继承过去,但是在子类中无法直接访问父类中的私有数据,但是可以间接访问
二、覆盖(overwride)
1、必须属于所属关系
2、子类中权限必须要大于父类的权限
3、覆盖的函数必须一模一样(返回类型、函数名、形参列表)
4、父类中私有的方法不能被覆盖
5、父类中静态的方法不能被覆盖
6、在所属关系中不存在属性之间的覆盖
三、super含义
1、super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象
2、super代表的是当前子类对象中的父类型特征
四、super()用在构造方法中
1、子类中一个构造方法第一行如果没有this(""),也没有显示去调用super(""),系统会默认调用super();super()的调用只能放在构造方法的第一行
2、super()和this()不能共存
3、在没有定义super("")时,子类中所有的构造函数访问父类的无参构造函数
4、在调用super()时不会创建父类对象
5、通过子类的构造方法去调用父类的构造方法,作用是给当前子类对象中的父类型特征赋值
6、在java语言中只要创建java对象,那么Object中的无参构造方法一定会执行
五、一个实例化过程
1、JVM会读取指定的路径下的 ?.class文件,并加载进内存,并会先加载这个类的父类
2、在堆内存中开辟空间,分配地址
3、并在对象空间中,对对象中的属性进行默认初始化
4、调用对应的构造函数进行初始化
5、在构造函数中,第一行会先到调用父类中构造函数进行初始化
6、父类初始化完毕后,在对子类的属性进行显示初始化
7、在进行子类构造函数的特定初始化
8、初始化完毕后,将地址赋值给引用变量