多态的成员变量与成员方法调用的特点
/*
package Demo09;
/*
*在多态代码中,成员方法的访问规则是-
-
看New的是谁,就优先使用谁,灭有则向上找
-
口诀-编译看左边,运行看右边
-
对比—
-
成员变量-编译看左边,运行还看左边
-
成员方法-编译看左边,运行看右边
-
*/
public class MainMultiMethod {
public static void main(String[] args) {
Fu obj=new Zi();//多态
obj.method();//父子都有,但先用子
obj.methodFu();//子类没有,父类有,向上找,//编译看做,左边是Fu ,Fu当中没有methdoZi方法,所以编译报错 // obj.methodZi();//错误写法
}
}
*/
/*
package Demo09;
/*
- 多态中 访问成员变量的两种方式,
- 1.直接访问-直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找
*2.间接通过成员方法访问成员变量,看方法属于谁,就优先使用谁,没有则向上找
*注意-成员变量不能进行覆盖重写
-
*/
public class Main {
public static void main(String[] args) {
Fu object=new Zi();
System.out.println(object.num);//10
// System.out.println(object.age);错误写法
object.showNum();//覆盖重写方法后,显示的为父类的Num
System.out.println("*****************");
object.showNum();
//结论-
//子类方法没有覆盖重写,就直接访问的是父类成员变量,
//子类放噶有覆盖成功学,就间接访问的是子类成员变量}
}
*/
/*
package Demo09;
public class Fu {
int num=10;
public void showNum(){
System.out.println(num);
}
public void method(){
System.out.println(“父类方法”);
}
public void methodFu(){
System.out.println(“父类特有方法”);
}
}
*/
/*
package Demo09;
public class Zi extends Fu{
int num=20;
int age=16;
public void showNum(){
System.out.println(num);
}
public void method(){
System.out.println(“子类方法”);
}
public void methodZi(){
System.out.println(“子类特有方法”);
}
}
*/