内存布局
局部变量在stack:栈里生成,new出来的在heap:堆里生成
package 和import
必须class文件最上层包的父目录位于classpath下;
访问修饰符:public private default protected
对class的修饰符只能为 public 和 default;
default的类只能被同一个包的其他类访问;
类前无修饰符默认为default;
对成员变量的修饰符为上面四个:为其他对象对该成员变量的访问
default是同一个包里的其他类的对象可以访问该成员变量,子类不可以访问;
super和this
this是指向当前对象的引用
super是指向当前对象里的父类对象的引用,继承中,子类对象生成时,每个子类对象的内部都有一个父类对象。
每次子类从父类继承时,会产生两个关键字引用即super和this;
对象转型(casting)
一个基类的引用类型变量可以"指向"子类对象;
一个基类对象的引用不可以访问其子类对象中新增加的成员(属性和方法);{该基类对象的引用只能看到基类对象的成员,看不到基类中新增加的成员;}
可以使用引用变量 instanceof 类名来判断该引用变量所“指向”的对象是否属于该类或该类的子类
动态绑定(多态)的条件
要有继承,要有重写,要有父类引用指向子类对象;
interface
实现接口的类必须实现接口中所有定义的方法;接口的引用可以指向实现接口类的对象(犹如父类引用指向子类对象);
接口其实也是一种类,接口中定义的方法默认为public;