黑马程序员技术交流社区

标题: 求教继承和多态的问题…… [打印本页]

作者: 第一枭雄    时间: 2013-5-13 21:09
标题: 求教继承和多态的问题……
求教……

继承多态.png (35.23 KB, 下载次数: 0)

继承多态.png

作者: 赵利斌    时间: 2013-5-13 21:52
  下面的两种情况就不说了    图上有另一种多态的情况:希望可以帮到你                                
                                 Zi   zi=new Zi();
                System.out.println(zi.x);
                zi.show();
                System.out.println();
                Fu  fu=new Fu();
                System.out.println(zi.x);
                fu.show();      

无标题.png (233.29 KB, 下载次数: 0)

无标题.png

作者: 赵利斌    时间: 2013-5-13 21:55
纠正一下  是3  和Zi    ......run
作者: 赵利斌    时间: 2013-5-13 23:16
上面的多态和继承        我做一下纠正,楼主问他同名的变量怎么打印的是父类的,我这样给你解释:
因为你在父类里面已经定义了一个变量,在子类里面就没有必要去再定义一个相同名字的变量了,因为子类已经继承了父类,那个变量也跟着继承下来了,看代码体会一下:


如下:
class  Demo
{
        public static void main(String[] args)
        {
        /*        Zi   zi=new Zi();
                System.out.println(zi.x);
                zi.show();
                System.out.println();
                Fu  fu=new Fu();
                System.out.println(zi.x);
                fu.show();*/
                System.out.println();
                Fu  fu1=new Zi();
                System.out.println(new Zi().x);        //3
                System.out.println(fu1.x);                  //3
                System.out.println(new Zi().y);       //6
                fu1.show();
        }
}
class  Fu
{
        int x=3;
        void show()
        {
                System.out.print("fu...run");
        }
}

class  Zi extends Fu
{
        int y=6;
        void show()
        {
                System.out.print("Zi...run");
        }
}
作者: 第一枭雄    时间: 2013-5-13 23:32
赵利斌 发表于 2013-5-13 23:16
上面的多态和继承        我做一下纠正,楼主问他同名的变量怎么打印的是父类的,我这样给你解释:
因为你 ...

谢谢了,但是……似乎你没看懂我问什么
其实……我想说……他怎么运行的,出什么样的结果我都知道……
我只是想问遍java的人为什么要这样编运行机制,为什么要这么定义,有什么好处
或者说如果成员变量和成员方法一样的覆盖、多态会有什么不好的问题
作者: 赵利斌    时间: 2013-5-13 23:37
它都没有必要再定义了,还考虑那么多   钻牛角尖




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2