黑马程序员技术交流社区

标题: 多态问题 [打印本页]

作者: 小菜鸟啊    时间: 2014-1-15 22:06
标题: 多态问题
class Fu{
        public int num = 10;
        public void show(){
                System.out.println("fu show");
}
}

class Zi extends Fu{
        public int num = 20;
        public void show(){
                System.out.println("zi show");
        }
        public void method(){
                System.out.println("zi method");
        }}
class DuoTaiDemo2 {
        public static void main(String[] args) {
                Fu fu = new Zi();<-----这块不明白
                fu.show();//zi show
                //fu.method();
                System.out.println(fu.num);//10


               
作者: 银酱    时间: 2014-1-15 22:12
本帖最后由 银酱 于 2014-1-15 22:15 编辑

父类引用指向子类对象。这时候编译时候看等号左边,运行的时候确实实现的右边的内容
就好像动物能指向猫一样具体可参考我的bloghttp://blog.csdn.net/wknlm0001/article/details/18231621


作者: 疯狂的土贼    时间: 2014-1-15 22:23
本帖最后由 疯狂的土贼 于 2014-1-15 22:25 编辑

class DuoTaiDemo2 {
        public static void main(String[] args) {
                Fu fu = new Zi();<-----这块不明白
                fu.show();//zi show
                //fu.method();
                System.out.println(fu.num);//10
跟你说完这个 呵呵我就累码去了
Fu fu = new Zi();<-----这块个不明白
为了让你看得懂吧 我给你拆开讲
Fu 和Zi 这是两个类 分别名字为Fu和Zi
fu=new Zi(); 这个是创建一个名为fu的对象
这个基本理解了的话 那么我们就说下 多态
多态 是指一个对象或者一个方法可以有多种实现的版本 也就是一种定义 多种实现
对于一个方法的多种实现 程序在运行的时候 会根据方法的参数不同 自动选择一个执行 不会产生混淆
也就是同名 同类型的函数 参数列表不同
这样 在实现一个类的时候由于参数不同那么在调用的时候如果给予一个特定的参数那么这个方法就会去调用带有相同参数的对象实现具体的操作
哎 还是基础不牢靠啊 在回头看看 对了 论坛上有份毕老师的笔记 整理的不错 你还是再看下 很有帮助 我给你放在这里 喜欢的话你就下载去吧

毕向东java基础总结.zip

126.46 KB, 下载次数: 37


作者: 黄晓鑫    时间: 2014-1-15 22:26
Fu fu = new Zi();这个是创建了一个子类类型的对象 fu.show当然就是调用了子类的方法 走了子类的方法打印了zi show 然后打印zi的成员变量(20)




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