/**
* 成员变量:使用的是父类的
* 成员方法:使用多态后,由于存在重写所以对象调用的是子类的方法,但是对象也可以调用父类中没有被子类重写的函数
* 静态成员:随着对象而存在,谁调用的就返回谁的
* 多态的使用准则:编译看左边,执行看右边
*/
public class 多态的使用_12 {
static class fu {
int num = 1;
static int count = 11;
int b =0;
public void function01() {
System.out.println("我是父类的非静态方法");
}
public static void function02() {
System.out.println("我是父类的静态方法");
}
}
static class zi extends fu{
int num =2;
static int count=12;
int a=1;
public void function01() {
System.out.println("我是子类的非静态方法");
}
public static void function02() {
System.out.println("我是子类的静态方法");
}
}
public static void main(String[] args) {
fu f =new zi(); //变量名子类和父类一致
System.out.println(f.num); //不管是静态还是非静态,成员变量使用的都是父类的
System.out.println(f.count);
f.function01(); //非静态的方法,调用子类的方法
f.function02(); //静态方法调用的是父类的
}
}
运行结果
总结:
多态中对象调用的变量都是父类的,调用的方法看是静态还是非静态.静态调用父类的方法,非静态调用子类的方法