父类
public class diqiuren {
public void speak()
{
System.out.println("我是地球人");
}
public void f1()
{
System.out.println("f1开始");
/*这里相当于this.speak,这个this不代表本类,而是表示当前的对象,也就是如果new了一个子类对象,
而子类中也override了一个speak(),则这里执行的是子类的speak()*/
speak();
System.out.println("f1结束");
}
}
子类
public class chinese extends diqiuren
{
@Override
public void speak()
{
System.out.println("我是中国人");
}
}
测试
package ovrideTest;
public class overrideTest {
public static void main(String[] args)
{
diqiuren d1 = new chinese();
d1.f1();
}
}
输出结果
f1开始
我是中国人
f1结束
说明:
如果父类和子类中都定义了同样的方法A(多态),如果在父类中的其它方法B中使用到了A,当new产生的的对象为子类时,调用B时候执行的方法A为子类中的A,不是父类中的A。