黑马程序员技术交流社区

标题: 大家帮忙看看这道题目怎么做 [打印本页]

作者: py389172739    时间: 2016-4-15 22:52
标题: 大家帮忙看看这道题目怎么做
下列对多态中成员访问的特点描述正确的是( ) ----- 单选
A、成员变量,编译看父类,运行看父类
B、成员变量,编译看父类,运行看子类
C、成员方法,编译看父类,运行看父类
D、成员方法,编译看子类,运行看子类

大家帮忙看看这道题目选哪一个?顺便帮忙分析下原因,谢谢!


作者: jacky左    时间: 2016-4-15 23:01
选A.成员变量编译看父类,运行也看父类.成员方法是编译看父类,运行看子类
作者: liuchenguangqnm    时间: 2016-4-15 23:22
赞成上面的回答,因为调用成员变量不存在方法重写的问题,根本构不成多态。
多态的三大条件是:
继承、重写、父类引用指向子类对象

以下是测试代码:(由于没有多态存在,调用成员变量或方法的结果决定于调用对象的类型)
public class Test {

        /**
         * @param args
         */
        public static void main(String[] args) {
                Fu fu = new Zi();
                System.out.println(fu.name);
        }

}

public class Fu {
        public String name = "父类";
}

public class Zi extends Fu {
        public String name = "子类";
}
作者: 丶半度微凉    时间: 2016-4-15 23:30
选A,成员变量是编译看父类,运行看父类,成员方法是编译看父类,运行看子类
作者: py389172739    时间: 2016-4-15 23:33
liuchenguangqnm 发表于 2016-4-15 23:22
赞成上面的回答,因为调用成员变量不存在方法重写的问题,根本构不成多态。
多态的三大条件是:
继承、重写 ...

回答的很好,谢谢……




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