Java继承之向上转型
什么是向上转型呢?
把对某个对象的引用视为对其基类型的引用的做法。
概念说了一堆,代码具体表现如下:
public class A { //基类
public void dispose(){
System.out.println("A:dispose");
}
}
public class C extends A{
public static void main(String args[]){
A c =new C(); //C类转化为A类:向上转型
c.dispose();
}
}
运行结果:
A:dispose
当我们把这个语句: A c =new C();改为: C c =new C(1);时
运行结果:
**因为C继承A中所有方法,所以此时调用的是C中的dispose方法。**
如果我们在导出类(子类)中覆盖了基类的方法:
public class A { //基类
public void dispose(){
System.out.println("A:dispose");
}
}
public class C extends A{
public static void main(String args[]){
A c =new C(); //C类转化为A类:向上转型
c.dispose();
}
@Override
public void dispose(){
System.out.println("C:dispose ");
}
}
运行结果:
C:dispose
并不会去调用A类的dispose方法,相当于调用了C类的dispose