A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

下列对多态中成员访问的特点描述正确的是( ) ----- 单选
A、成员变量,编译看父类,运行看父类
B、成员变量,编译看父类,运行看子类
C、成员方法,编译看父类,运行看父类
D、成员方法,编译看子类,运行看子类

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

4 个回复

倒序浏览
选A.成员变量编译看父类,运行也看父类.成员方法是编译看父类,运行看子类
回复 使用道具 举报
赞成上面的回答,因为调用成员变量不存在方法重写的问题,根本构不成多态。
多态的三大条件是:
继承、重写、父类引用指向子类对象

以下是测试代码:(由于没有多态存在,调用成员变量或方法的结果决定于调用对象的类型)
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 = "子类";
}
回复 使用道具 举报
选A,成员变量是编译看父类,运行看父类,成员方法是编译看父类,运行看子类
回复 使用道具 举报
liuchenguangqnm 发表于 2016-4-15 23:22
赞成上面的回答,因为调用成员变量不存在方法重写的问题,根本构不成多态。
多态的三大条件是:
继承、重写 ...

回答的很好,谢谢……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马