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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

既然子类已经有了父类的方法了  为什么子类里的方法却用super调用父类的

3 个回复

倒序浏览
"super"
1.调用父类的构造方法
子类可以调用由父类声明的构造方法。但是必须在子类的构造方法中使用super关键字来调用。
如果父类的构造方法中包括参数,则参数列表为必选项,用于指定父类构造方法的入口参数。  
2.操作被隐藏的成员变量和被覆盖的成员方法
如果想在子类中操作父类中被隐藏的成员变量和被覆盖的成员方法,也可以使用super关键字.
回复 使用道具 举报
因为在子类和父类之间有重写的概念,如果要在子类中定义一个方法,而该方法和父类有相同的名称和参数,子类可以原封不动的继承父类的方法,
而如果子类想要修改,就必须重写父类的方法
class A
{
        public void show()
        {
                System.out.println("吃饭");
                System.out.println("走路");
                System.out.println("说话");
        }
}
class B extends A
{
        public void show()
        {
                super.show();//此处个人认为是提高了代码的复用性
                System.out.println("学习");
        }
}
你看这样是不是好理解一些
回复 使用道具 举报
胥文 发表于 2013-2-18 22:04
因为在子类和父类之间有重写的概念,如果要在子类中定义一个方法,而该方法和父类有相同的名称和参数,子类 ...

你没理解我说的意思  你看源代码的时候拿你的例子来举例子
class A
{
        public void show()
        {
                System.out.println("吃饭");
                System.out.println("走路");
                System.out.println("说话");
        }
}
class B extends A
{
        public void show()
        {
                super.show();//此处个人认为是提高了代码的复用性
               //System.out.println("学习");去掉这句话  子类直接调用父类方法
        }
}
就是说子类不加强  直接调用父类方法  你看源码很多这样写的

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马