以下一块代码我子类直接创建对象和父类的引用指向子类的对象运行结果是一样的,平常做一些练习的时候也发现这两者运行结果都是一样,子类直接创建对象和父类的引用指向子类的对象有什么区别?除了概念上的多态
public class Test10 { public static void main(String[] args) {
A1 a1=new A1(1);
a1.show();
System.out.println("a1.x="+a1.x);
A12 a12 =new A12(10,20);
a12.show();
System.out.println("a12.x="+a12.x);
A1 c =new A12(10,20);
c.show();
System.out.println("c.x="+c.x);
} }
class A1{
int x;
A1(int x){
this.x=x;
}
void show(){
System.out.println("a1.x="+x);
}
}
class A12 extends A1{
A12(int x,int y){
super(x);
this.x=y;
}
void show(){
System.out.println("super.x="+super.x+" this.x="+this.x);
}
}
在学课程:
零基础学编程JAVA语言直通班
http://www.atstudy.com/course/1006
|