1、instanceof:判断是否存在子父代关系
- System.out.println(x instanceof Y);
- 输出结果是true还是false,主要是看变量x所指向的对象实际类型是不是Y类型的"子类型".
该代码能否编译通过
,
主要是看声明变量
x的类型和Y是否存在子父类的关系.
有
"
子父类关
"
系就编译通过
,
没有子父类关系就是编译报错
.
2、类型转换
- 低 >>转>> 高 (自动转换) 父类引用指向子类的对象,把子类转换为父类
- 高 >>转>> 低 (强制转换) 把父类转换子类,可能丢失方法
3、static关键字
1、static变量
- 在类中,使用static修饰的成员变量,就是静态变量,反之为非静态变量。
- 静态变量和非静态变量的区别 :静态变量属于类的,"可以"使用类名来访问,非静态变量是属于对象的,"必须"使用对象来访问
2、static方法
- 在类中,使用static修饰的成员方法,就是静态方法,反之为非静态方法。
- 静态方法和非静态方法的区别 :静态方法"不可以"直接访问类中的非静态变量和非静态方法,但是"可以"直接访问类中的静态变量和静态 方法
(注意
:this
和
super
在类中属于非静态的变量
.(
静态方法中不能使用
))
3、代码块、静态代码块、构造方法
- 匿名代码块是在创建对象的时候自动执行的,并且在构造器执行之前。
- 同时匿名代码块在每次创建对象的时候都会自动执行.
- 静态代码块是在类加载完成之后就自动执行,并且只执行一次
4、静态导入包
4、final修饰符
- 用final修饰的类不能被继承,没有子类。
- 用final修饰的方法可以被继承,但是不能被子类的重写。
- 用fifinal修饰的变量表示常量,只能被赋一次值.其实使用fifinal修饰的变量也就成了常量了,因为值不会再变了。