FS370 2019-04-25 20:25 采纳率: 0%
浏览 554
已结题

关于多态属性的调用问题

  • class Fu{
  • int num=4;
  • void show(){
  • System.out.println("showFu");
  • }
  • }
  • class Zi extends Fu{
  • int num = 5;
  • void show(){
  • System.out.println("showZi");
  • }
  • }
  • public class Test1{
  • public static void main(String[] args){
  • Fu f=new Zi();
  • Zi z=new Zi();
  •     System.out.println(f.num);     *请问这个为什么打出来是4
    
  •     System.out.println(z.num);
    
  •     f.show();
    
  •     z.show();
    
  • }
    
  • }

  • *

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-04-25 23:53
    关注

    Fu f=new Zi();
    因为f是Fu类型,所以看不到Z的成员。
    如果是
    System.out.println(((Z)f).num);
    则输出5

    成员变量没有“覆盖”一说。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月7日