谁写出这样的程序,是要被老师敲脑壳的。
类aa继承类dd,那么aa有一个变量int id了。但是重定义一个String id,引起了混乱。我想,java编译应该把这种做法看作是一个错误的。但编译居然通过,这应该算作java的一个bug。
类aa继承类dd,那么aa有一个变量int id了。但是重定义一个String id,引起了混乱。我想,java编译应该把这种做法看作是一个错误的。但编译居然通过,这应该算作java的一个bug。
一般建议基类的成员变量为private,不让子类继承,如果基类中定义成了public那么在子类中又进行了得重定义的话会屏蔽掉基类中的那个同名成员变量\\
不知对否?
在main()中加入如下代码:
dd d1=new aa();
system.out.println("id="+d1.id);
访问的也是基类的id。
使用覆盖基类域的做法既无法重用代码,又无法像覆盖方法那样有多态性,所以一般情况下不提倡的。