关于父类和子类的一些细节

  1. 子类继承了父类除构造函数之外的所有东西,只是根据在父类中定义的访问属性决定了在子类中是否可以使用

  2. 只有父类和子类在同一个包中时,父类中访问属性缺省的成员才可以被子类访问,因此访问属性为procted要比访问属性缺省的宽一些
    关于父类和子类的一些细节

  3. 不可以重新在子类中定义父类成员的访问属性,如果在子类中定义了在父类中存在的成员变量,那么在子类方法中可以访问在子类中定义的成员变量,在父类方法中可以访问在父类中定义的成员变量,二者可以同名但互不影响

  4. 在程序运行过程中,子类对象的一部分存放的是父类对象。在初始化时会先初始化父类的空间,再初始化子类空间

  5. 如果有一个CD子类继承了父类Items,子类有两个对象CD1,CD2,即使这两个对象的值完全相同,equels比较出来的结果仍然是false
    原因:如果子类没有重写,调用的就是父类的equels,而父类并不关心子类的具体内容,因此调用父类的equels只是比较的两个管理者是否管理的同一块内存
    解决方法:重写子类的equels

  6. 强制转换:int i = (int)10.4,改变了数据原来的形态;
    向上造型:假如有CD类继承了父类Items,有CD类的对象CD1,Items的对象it1,则it1=CD1就是想上造型,只是将子类强制看作父类的对象,并没有做实际的修改