class A {
public int i = 10;
}
class B extends A{
public int i = 20;//因为B继承A所以这里i被重新给值为20
}
public class Test{
public static void main(String args[]){
B b = new B(); // 这里访问B的无参构造,因为你没写,所以系统自动给出,并对B 类进行初始化。
A a = b; (这里可以理解为A a = new B()) // 把父类中的i(这里值是10)给a也可以理解为
System.out.println(b.i); //访问B类中的成员变量i,上面已经说了,值已经改变为20
System.out.println(a.i);//上面我们已经讲过了A
}
}
class A {
public int i = 10;
}
class B extends A{
public int i = 20;//因为B继承A所以这里i被重新给值为20
}
public class Test{
public static void main(String args[]){
B b = new B(); // 这里访问B的无参构造,因为你没写,所以系统自动给出,并对B 类进行初始化。
A a = b; (这里可以理解为A a = new B()) // 把父类中的i(这里值是10)给a也可以理解为
System.out.println(b.i); //访问B类中的成员变量i,上面已经说了,值已经改变为20
System.out.println(a.i);//上面我们已经讲过了A a = new B() ,这里其实就是多态,多态的成员变量访问特点是编译看左边,运行看左边,所以看的是A类。
}
}