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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lizequn007wo 中级黑马   /  2015-7-27 22:06  /  493 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Sub extends Super {//子类
public int i = 100;
public void show()
{
System.out.println("子类方法");
}


public static void main(String[] args) {
Super sup = new Super();
Sub sup1 = new Sub();
Super sup2 = new Sub();

}


}


class Super {//父类
public int i = 50;


public void show()
{
System.out.println("父类方法");
}


}
请问sub、sub1、sub2三个对象的可以访问那些方法和属性

6 个回复

倒序浏览
sup,父类对象,能访问父类中的public成员i,能调用父类中的public方法show()
sub1,子类对象,能访问父类中的public成员i,当调用sub1.show()时执行的是子类中的public方法show(),父类中的public方法show()不可见
sub2,父类对象,能访问父类中的public成员i,当调用sub2.show()时执行的是子类中的public方法show(),实现了多态,父类中的public方法show()不可见
回复 使用道具 举报
su为父类对象,访问父类的方法和变量,sub1是子类对象访问子类继承自父类的方法和变量,若子类重写了父类的方法则调用的是子类的方法。sup2是指向子类对象的引用,可访问子类的方法,但子类的方法必须父类也具有。
回复 使用道具 举报
sub只能访问Super类中的成员。
sub1对象调用的是子类中的成员,因为复写了父类中的方法。
sub2是多态,因为子类复习了父类中的方法,所以调用的是子类的方法。
回复 使用道具 举报
楼上回答的不错
回复 使用道具 举报
sub2是多态,对于方法来说,编译看左边,运行看右边
回复 使用道具 举报
好想有的明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马