1.成员变量
编译和运行都参考函数的左边
2.成员函数(非静态)
编译看左边,运行看右边
3.静态函数
编译和运行都看左边(静态方法不需要对象,直接类名调用即可)
public class Fu {
int a = 10;
public void show (){
System.out.println("show -----fu");
}
public static void fn(){
System.out.println("fn-----fu");
}
}
public class Zi extends Fu{
int a = 20;
int b = 30;
public void show(){
System.out.println("show----zi");
}
public static void fn(){
System.out.println("fn-----zi");
}
public void fn2(){
System.out.println("fn2-----zi");
}
}
public class DuoTaiText {
public static void main(String[] args) {
Fu f = new Zi();
System.out.println(f.a); //成员变量看左边
// System.out.println(f.b); 报错
// f.fn2(); 报错
f.show(); // 成员函数,运行时根据等号右边子类的来
//f.fn();
Fu.fn(); //静态方法可以直接调用
}
}
/*
10
show----zi
fn-----fu
*/
本文通过一个具体的Java示例介绍了多态的概念,并详细解释了如何在父类引用指向子类对象的情况下访问成员变量与成员方法的区别。同时,探讨了静态方法与普通方法在编译和运行期间的不同行为。
201

被折叠的 条评论
为什么被折叠?



