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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 繁华落幕 中级黑马   /  2015-6-21 21:49  /  227 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 繁华落幕 于 2015-6-24 22:24 编辑

给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。
class SuperEx {
String s = "父类成员变量";
public void method(){
System.out.println("SupMethod");
}
}
class SubEx extends SuperEx {
String s = "子类成员变量";
public void method(){
System.out.println("SubMethod");
}
}
class Demo {
public static void main (String[] args) {
SubEx sub = new SubEx();
SuperEx sup = new SubEx();

System.out.println(sub.s);
function( sub );
System.out.println(sup.s);
function( sup );
}
public static void function (SuperEx sup) {
sup.method();
}
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

3 个回复

倒序浏览
子类成员变量
SubMethod
父类成员变量
SubMethod


回复 使用道具 举报
SubEx sub = new SubEx();//实例化子类对象
SuperEx sup = new SubEx();//实例化父类为子类对象,多态
System.out.println(sub.s);//打印子类成员变量
function(sub);//多态调用  ,method为非静态方法,  使用子类方法  ,输出submethod
System.out.println(sup.s);//打印父类成员变量
function(sup); / /sup被实例化为了子类对象,依然是多态调用,所以还是submethod
回复 使用道具 举报
考的东西蛮多啊  多态 继承  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马