子类和父类的成员变量和成员方法的用法
子类代码:
package Day5;/*
*@author wanghongyuan
*@Create 2020/12/12 23:25
*/
public class Zi extends Fu{
int num =20;
@Override
public void showNum(){
System.out.println(num);
}
@Override
public void method(){
System.out.println("这是个子类方法");
};
public void methodZi(){
System.out.println("这是个子类特有方法");
};
}
父类代码
package Day5;/*
*@author wanghongyuan
*@Create 2020/12/12 23:25
*/
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 Day5;/*
*@author wanghongyuan
*@Create 2020/12/13 0:20
*在多态的代码中,成员方法的访问规则:
1.看new的是谁,就优先用谁,没有则向上找
口诀
编译看左边,运行看右边
注意:多态中的成员方法和成员变量的访问不一样。
对比一下:
在多态中的成员变量规则:编译看左边,运行还是看左边。
在多态中的成员方法规则:编译看左边,运行看右边。
*/
public class Demo02MultiMethod {
public static void main(String[] args) {
Fu ddd =new Zi();
ddd.method();//new 的是子,所以输出是子类(优先用子)
ddd.methodFu();//子类没有,父类有,向上找到父类。
// 红色出现了,编译看左边,左边是Fu,父类中没有methodZi方法,所以编译报错了。
// ddd.methodZi();//错误写法。
}
}