(JavaSE)基础内容复习

来源:互联网 发布:二少捏脸数据 编辑:程序博客网 时间:2024/06/01 21:07

一,继承
0,extends关键字
1,初始化子类必须初始化父类,也就是说调用子类的构造函数之前要先调用父类的构造方法
2,单继承性
3,构造方法不能被继承
4,关键字super,super可以引用父类的属性和方法

二,方法覆盖
0,什么是方法覆盖
1,方法覆盖,调用哪一个方法
规则:编译时看数据类型,运行时看实际的对象类型,new谁就调用谁的方法
2,方法覆盖的规则
除了方法的访问性级别不能比被覆盖的方法低,抛出的异常不能比被覆盖的方法的更多之外,其他返回类型,方法名称,参数列表
必须与他覆盖的方法相同
三,方法重载
1,什么是方法重载
如果出现了方法名相同,参数列表或返回参数不同的情况就是重载
2,方法重载的规则
方法名必须相同
参数列表必须不同
方法返回类型可以相同也可以不同

四,多态
1,什么是多态,
多态是同一个行为具有多种不同的表现形式或形态能力
方法覆盖是动态多态,是运行问题。
方法重载是静态多态,是编译问题。
2,当父类引用指向子类对象的时候,子类对象的特殊部分是隐藏的,也就是private私有的属性和方法是隐藏的。
这是一个很有味道的一个知识点
前面总结的时候,编译时是看数据类型的,也就是说父类引用指向子类对象的时候,编译主要是看数据类型,
数据类型是父类,所以编译器只能访问到父类里面定义的属性和方法,所以说编译时看的是数据类型。
如果父类真的要访问到子类对象的属性和方法就要强制类型转换。
3,instanceof运算符来判断实例变量是属于某种类的类型
4,动态绑定,我觉得这个知识点是可以做一个专题来讲解的
Father sample = new Son();//向上转型
  sample.method();
运行时看对象类型,如果son有method这个方法那么就会调用son的method方法,而不用向上转型访问father的方法。

五,static修饰符
1,能够与属性,方法,内部类一起使用,表示静态。
虚拟机加载代码的顺序是在调用构造函数之前就初始化被static修饰的方法和属性,所以
在static方法中是不能调用对象方法的,但是对象方法是可以调用static静态方法。
static修改的方法和属性是类级别的。
2,static属性分配内存
一个类中,一个static变量只会有一个内存空间。类的实例会共享一个内存空间。
3,static属性变量的初始化
static的变量时在类装载的时候就会被初始化的,不管是否使用到这个static变量,
所以,如果被static变量可以使用懒加载来使用,只需要声明,到要使用的时候才来初始化。
4,一些不被注意的规则
静态方法不能被非静态方法覆盖
静态方法不存在当前对象this,更不存在super。
5,静态初始器–静态代码块
6,静态import

六,final修饰符
1,什么是final修饰符
2,final的具体规则
final的标记的类不能被继承
final标记的方法不能被子类重写
内部类访问外部类的属性,那么,改外部类的属性必须声明为final类型。
final标记的变量即成为常量,只能赋值一次。

0 0
原创粉丝点击