继承、类加载

  1. 外部类的修饰符只能是public或着default,注意import类时就会受权限控制符的约束。
  2. import static xxx.className.* 将该类的所有静态方法导入,调用时只需要将方法名写出就行,无需声明类名。
  3. 静态内部类什么时候初始化:调用静态方法、静态变量不会使静态内部类初始化,只有调用这个内部类时才会初始化;调用这个内部类时,会先加载外部类,再加载内部类。
  4. a类继承b类,运行a类时,发现它继承自b类,故先加载b类,加载类时的顺序为先变量后代码块原则,并且会将static的变量进行初始化,所以static变量被赋值时用到的方法,会被实际调用。那么类的加载会由以下情况引起:是个基类、被实例化、静态方法或静态域被调用。

    5. 覆盖私有方法后,声明父类创建子类时,调用方法时,调用的是父类的方法。因为子类没能重写父类的方法。

访问父类的域时,不会是多态的,因为这个是编译时就决定的,不存在动态的绑定。同样静态方法也是与类相关联的,不会被子类所重写。

     6. 在多态的情形中,如果导出类的对象除了gc之外还要进行一些清理操作,那么这个清理操作要跟对象创建次序相反,因为有可能存在导出类对基类的引用。

猜你喜欢

转载自blog.csdn.net/u013577996/article/details/82620622