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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zlpiano 中级黑马   /  2015-7-2 18:04  /  1444 人查看  /  23 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

子类对象能否调用父类中被重写的方法

23 个回复

倒序浏览
在同一个类中没有重写这种说法,而对于第三个类来说它两个同时继承一个类,但是它两个没有关系(类是单继承,多层继承),因此也不可以调用(可以这样理解,重写增加了自己的特殊功能,所以即使被调用对其他类也没有意义)
回复 使用道具 举报
你的意思是调用父类中被其他子类重写的方法么?如果是这样 那是不行的 因为调用这个方法的子类没有这个方法
回复 使用道具 举报
应该不行的,除非你在子类中定义了getParentMethod()之类的函数,不过这样做重写就显得没意义了。
回复 使用道具 举报
父类中不存在重写不重写吧?子类重写父类方法没有改变父类。
回复 使用道具 举报
可以的,使用     super.父类方法     就可以调用,要注意的是要放在子类代码第一行,还有就是不能和this()同时出现
回复 使用道具 举报
本帖最后由 zlpiano 于 2015-7-5 00:02 编辑

可以调用么?受教了。不过好像只能在子类内部调用。
回复 使用道具 举报
只有继承了或者实现某个接口才有复写
回复 使用道具 举报
不能,就像父类中的private保护内容一样,被重写的方法,已经看不见了。
回复 使用道具 举报
我感觉应该也是可以的,以后会接触到多层继承吧。
回复 使用道具 举报
可以的 super关键字
回复 使用道具 举报
一个人分别照平面镜和哈哈镜,显示的人样不同但是人本身没变。A和B继承与C,B重写了C也只是在B自己的类中改变了。并不能改变父类C本身
回复 使用道具 举报
wgy 中级黑马 2015-7-5 10:01:58
13#
   子类对象能否调用父类中被重写的方法?
   这个是可以的,要想使用父类中被重写的方法,格式:super.被子类重写的方法。举个简单的例子如下:
测试类:  public class DemoTest {        public static void main(String[] args) {
                DemoZi dz = new DemoZi();
                dz.show();
        }
}

子类:
public class DemoZi extends DemoFu {
        public void show(){
                super.show();//调用父类中被子类重写的方法
                System.out.println("show zi");
        }
}
父类:
public class DemoFu {
        public void show(){
                System.out.println("show fu");
        }
        public void show2(){
                System.out.println("show2 fu");
        }
}

打印结果:
       show fu
       show zi
   从上面的例子可以看出,子类是可以调用父类中被重写的方法的。希望对你有用。
回复 使用道具 举报
如果已经是一个子类对象了。  它就不可能调用你类的方法了。 子类的方法已经覆盖了父类的方法。
回复 使用道具 举报 1 0
可以使用 super.父类方法
回复 使用道具 举报
可以继承
回复 使用道具 举报
子类的方法已经覆盖了父类的方法了,怎么还能调用父类的呢,其实这个问题自己写两个类测试一下就很明白了
回复 使用道具 举报
父类的方法可以被子类重写,子类调的是它自己重写的,或者直接调父类本来的那个,但它也是继承下来的
回复 使用道具 举报
可以的。如果想使用父类中的只需要用super.方法名调用即可
回复 使用道具 举报
子类的方法复写了父类的方法,可以直接调用父类的方法。。。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马