黑马程序员技术交流社区

标题: super关键字 [打印本页]

作者: yingying    时间: 2012-11-25 12:21
标题: super关键字
本帖最后由 yingying 于 2012-11-25 13:33 编辑

super关键字的详细用法是什么啊?有时总是感觉模糊
作者: 张权    时间: 2012-11-25 12:30
本帖最后由 张权 于 2012-11-25 12:35 编辑

  看视频啊,上面讲的很清楚! 子类调用父类的构造函数就用super
class Fu
{
                Fu()
                {
                                System.out.println("fu");        
                }        
}
class Zi extends Fu
{
                Zi()
                {
                                //super();  系统会默认调用,这个是无参数的
                                System.out.println("Zi");        
                }
}
class Test
{
                public static void main(String[] args)
                {
                                Zi z = new Zi();//打印结果 fu ,zi
        
                }        
}
这个要回答完整很麻烦,要是不懂继续接着问吧!!
class Fu
{
  Fu()
  {
    System.out.println("fu");
  }
  Fu(int x)
  {
    System.out.println("fu:"+x);
  }
}
class Zi extends Fu
{
  Zi()
  {
    //super();
    super(4);//有参数调用,这个最后打印结果是fu:4   zi。如果你不这样调用,就会默认super(),调用父类无参构造       函         数,那么打印结果就是和上面一样
    System.out.println("Zi");
  }
}
class Test
{
  public static void main(String[] args)
  {
    Zi z = new Zi();
  }
}
作者: 齐银春    时间: 2012-11-25 12:32
super代表父类所属的空间  只能定义在构造函数的第一行,不能喝this同时出现 。如果父类没有空参的构造函数,子类的构造函数中必须手动调用super指定要访问的父类中的构造函数
作者: 孙浩    时间: 2012-11-25 12:38
本帖最后由 孙浩 于 2012-11-25 12:44 编辑

super是父类的引用
super
表示调用父类声明的属性和方法。

作者: 雷剑腾    时间: 2012-11-25 13:04
super用于调用父类的方法。包括了调用父类的protected函数。父类的protected函数只能通过super来调用。用在构造器,super和this的用法一样,this是调用自己的其他构造器,而super调用父类的构造器。
要注意的一点是:子类中所有的构造函数默认第一行都是super();当父类中没有空参数的构造函数时,子类必须手动通过super语句来指定访问父类中的构造函数。
作者: yingying    时间: 2012-11-25 13:06
谢谢大家,这个问题已经明白了  但我怎么把未解决改成已解决啊   找了半天没找到啊
作者: 崔利鹏    时间: 2012-11-25 13:18
有个编辑就在你发表的帖子的下面,你仔细看看,有分享到QQ空间等一系列下面

QQ截图20121125131721.png (8.54 KB, 下载次数: 29)

QQ截图20121125131721.png

作者: yingying    时间: 2012-11-25 13:33
崔利鹏 发表于 2012-11-25 13:18
有个编辑就在你发表的帖子的下面,你仔细看看,有分享到QQ空间等一系列下面 ...

看到了  谢谢啦




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