请问各路大神,java中子类里的方法不得对父类中的方法进行覆盖这句话怎么理解?
父类中的方法是抽象方法,说白了就是这个方法没有{}这个
哪里说的,,为什么不能重写(覆盖)父类方法?
你要覆盖了,怎么去调用????子类可以调用父类方法的,
虽然不能覆盖,但是可以重载
因为重载是参数列表不一致,调用时可以区分
你说的是final吧?如果父类方法有final修饰,那么,子类不能重新这个方法,只能使用父类的方法
像这种问题只要你写代码写得多了,自然就明白了
你可以重写父类方法,如果是常量修饰的,就不能重写,你可以super();
可以用override啊,不过有几个点注意一下
关于Override有几点要注意的地方:
1.被覆盖方法的访问控制级别可以不一样。
例如上例父类的showMess方法的访问级别为protected的,而子类覆盖的showMess方法访问级别则为public的。
但子类的访问级别必须要高于父类被覆盖方法的访问级别,如果父类是public的而子类是protected的则是错误的。
2.方法被定义为private或static或final的则不能被覆盖。
3.方法的返回类型:子类的返回类型可以是更具体的对象,例如可以将Employee类的返回类型改为Object也正确。而倒过来则错误。
4.在方法调用时先会在子类中找覆盖的方法,如果子类中没有则会在父类中去找。
(来自http://skyuck.iteye.com/blog/764696)
当父类的方法是使用final修饰的时候,表示方法不可以被覆盖.
这肯定是有final做限定条件的或者父类的方法是使用private修饰的