重写是在父类与子类之间产生的,也就是说这两者之间存在继承关系。现在让我们一起看一下当重写父类方法时,new不同的对象,它所调用的方法究竟属于父类还是子类吧!
public class Test1 extends Test{//父类
public void changValue()
{
System.out.println("子类");
}
public static void main(String[] args)
{
Test test= new Test1();//实例化子类并向上转型(体现了多态),结果是子类;
test.changValue();
}
}
class Test {
public void changValue()
{
System.out.println("父类");
}
}
public class Test1 extends Test{
public void changValue()
{
System.out.println("子类");
}
public static void main(String[] args)
{
Test test= new Test();//实例化父类,结果为父类;
test.changValue();
}
}
class Test {
public void changValue()
{
System.out.println("父类");
}
}
由此可以看出,实例化谁那么调用的方法就是谁的方法,调用子类时,父类的方法已经被重写了!