======================================================
注:本文源代码点此下载
======================================================
package com.java.test;
public class t extends parent {
public void method1(int a, int c, string b) {
system.out.println("this is t.t1");
}
public static void main(string args[]) {
t t = new t();
t.method1(1, 1, "srx");
//在方法覆盖中,左右俩边分别为父类和子类的时候,以左边作为调用的入口,右边作为调用的实际调用执行的方法。
parent t1= new t();
//t1是parent的对象,t1调用的方法只能是parent的方法,但是实际调用是调用子类还是父类的方法,是看new谁,new谁就调用谁
t1.method1(0, 0, "");
//这里t new的是t,parent只是一个强制类型的转换。
parent t2= (parent)t;
t2.method1(0, 0, "");
//如果明确想调父类的方法,来个过渡方法,不能直接调用子类的方法t2,parent里面只有t1和t5
//只有子类的对象,才能调用子类的方法,以左边作为调用的入口,右边作为调用的实际调用执行的方法。
t.t2();
}
public void t2(){
super.method1(0, 0, "");
}
}
class parent {
void method1(int a, int b, string c) {
system.out.println("this is p.t1");
}
}
上面的程序在一个java类t里面。一句话,当左右类不同的时候,左边能够写出来的方法是左边类的方法,=右边是真正执行的方法所属于的类,也就是对象属于哪个类,new谁,执行谁的方法,如果进行了强制类型转换,对象是new谁的还是不变的。
执行后的结果为:
this is t.t1
this is t.t1
this is t.t1
this is p.t1
http://www.cnblogs.com/snowdrop/articles/1807828.html
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/