JAVA中的继承特点1
*如果子类与父类有相同的字段,则子类中的字段会代替或隐藏父类的字段,子类方法中访问的是子类中的字段(而不是父类中的字段)。如果子类方法确实想访问父类中被隐藏的同名字段,可以用super关键字来访问它。
*如果子类被当作父类使用,则通过子类访问的字段是父类的!
父类和子类的变量是同时存在的,即使是同名。
子类中看到的是子类的变量,父类中看到的是父类中的变量。
它们互相隐藏,而同名的方法则是实实在在的覆盖。
如A x = new B();
x是一个B,也是一个A,
那么调用方法时,是根据对象的实际类型调用的,
实际类型是B,所以永远调用子类的方法。
而访问成员变量就不同了,它是B时,访问的是子类的成员变量,
转型为A的话,访问的就是父类的成员变量了。
子类中看到的是子类的变量,父类中看到的是父类中的变量。
它们互相隐藏,而同名的方法则是实实在在的覆盖。
如A x = new B();
x是一个B,也是一个A,
那么调用方法时,是根据对象的实际类型调用的,
实际类型是B,所以永远调用子类的方法。
而访问成员变量就不同了,它是B时,访问的是子类的成员变量,
转型为A的话,访问的就是父类的成员变量了。