class Supclass {
protected String className = "父类属性"; public void print() {
System.out.println("thisis父类print()方法" + "——此时对象" + this.toString());
}
} // 子类:
public class fulei_zilei extends Supclass {
protected String className = "子类属性"; public void print() {
System.out.println("thisis子类print()方法" + "——此时对象" + this.toString());
} public static void main(String[] args) {
Supclass sup = new fulei_zilei();
System.out.println("此时的属性时:" + sup.className); }
}
结果却是:此时的属性时:父类属性 那如果我想使用子类的属性,该咋办呢?
出现这种情况可不可以这么认为:当我们用到它的方法时,
我便把它看成子类对象;若用到它的属性时,我把它看成父类对象.
它是一个占用父类属性,而使用子类方法的对象.至于到底是什么对象,它应算是父类对象,但拥有子类方法???
望指教,谢谢
protected String className = "父类属性"; public void print() {
System.out.println("thisis父类print()方法" + "——此时对象" + this.toString());
}
} // 子类:
public class fulei_zilei extends Supclass {
protected String className = "子类属性"; public void print() {
System.out.println("thisis子类print()方法" + "——此时对象" + this.toString());
} public static void main(String[] args) {
Supclass sup = new fulei_zilei();
System.out.println("此时的属性时:" + sup.className); }
}
结果却是:此时的属性时:父类属性 那如果我想使用子类的属性,该咋办呢?
出现这种情况可不可以这么认为:当我们用到它的方法时,
我便把它看成子类对象;若用到它的属性时,我把它看成父类对象.
它是一个占用父类属性,而使用子类方法的对象.至于到底是什么对象,它应算是父类对象,但拥有子类方法???
望指教,谢谢
java的多态是基于方法级别的,所以变量不具有重写,不会被覆盖.
成员变量可以被继承,但不能构成多态。只有方法才构成多态。也就是说,方法可以被动态绑定,而变量永远是静态绑定,只跟当前对应的实例类绑定。
Supclass sup = new fulei_zilei(); 应用的句柄是Supclass,所以就是引用Supclass的绑定变量...
就是如此