Java重写的问题

Java重写的问题

老师,子类对父类方法的重写,会在内存中覆盖掉父类方法吗?网上说是覆盖了,但是我在重写方法中调用父类的这个方法,也可以正常输出父类的方法信息:

public void get() {

System.out.println("我是接口默认方法重写");

IAct.super.get();

}

还有,父类或者接口中的静态方法,比如定义为public static void abc(){   },在实现类中如果用public void abc(){   },此时eclipse会提示这是overrides,上网搜了搜静态方法不能重写,那这个与重写的区别是什么呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

1)所谓的覆盖,意思就是自己有此方法,父类也有此方法,那调用时,走的是自己的,而不是父类的。并不是你理解的找不到父类的方法了,无法调用了的意思。2)父类与子类之间的叫继承,父类有的方法,在子类中又写一个同样的,这才叫重写。而你说的接口,与实现类,不是继承关系那叫实现。祝:学习愉快

  • 程序人生001 提问者 #1
    我在接口中写了一个静态方法,在实现类中写了一个同名的方法。出现两个情况:1:如果实现类中的方法加了static关键修饰,eclipse不提示任何信息。 2:如果实现类的方法没有加static关键字修饰,eclipse提示这是接口的overrides。 老师,这两种情况怎么解释一下,与重写又有什么区别呢。
    2018-03-27 19:09:40
  • irista23 回复 提问者 程序人生001 #2
    接口中不能定义静态方法,接口中的方法是抽象的都需要被实现,而静态方法直接使用类调用不需要实现重写。
    2018-03-28 09:56:48
  • 程序人生001 提问者 回复 irista23 #3
    好吧,按道理说接口的静态方法直接调用,不需要重写;但是我重写了一下(暂时称之为重写),出现了我说的问题。可能这么做没啥意义,我就不追问了。谢谢各位
    2018-03-28 11:47:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师