java如何调用父类的父类中被覆盖的方法
发布时间:2025-05-24 07:50:55 发布人:远客网络
一、java如何调用父类的父类中被覆盖的方法
1、子类已经覆盖了父类,并且重写了父类的方法,一般来说,就没有必要用子类调用父类中被覆盖的方法了.(否则就不要覆盖了啊)
2、要实现也是可以的,我们需要为子类提供一个其他的方法,用于去调用父类中被覆盖的方法
3、 System.out.println("父类的print方法");
4、 System.out.println("子类的print方法");
5、//在子类里创造一个方法去调用父类的方法
6、 super.print();//super指向父类
7、 publicstaticvoidmain(String[]args){
8、// Aa=(A)b;//这样强转还是打印的子类的方法,因为内存中还是子类
二、java 继承时,子类存在和父类相同的属性和方法会怎么样
1、在 Java中,如果子类存在和父类相同的属性和方法,则子类会覆盖父类的属性和方法。这种情况下,子类会继承父类的属性和方法,但是如果子类重新定义了和父类相同的属性和方法,则子类的属性和方法会覆盖父类的属性和方法。
2、如果子类覆盖了父类的方法,那么在调用该方法时,实际上会调用子类的方法而不是父类的方法。这就是所谓的方法重写(overriding)。
3、当子类存在和父类相同的属性时,子类可以使用 super关键字调用父类的属性。这种情况下,子类的属性会覆盖父类的属性。
三、java覆盖问题。覆盖父类方法抛出异常问题
1、重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常。
2、一个方法是否显示抛出异常对于重写是没用影响的,只是对调用者有影响,对于使用者来说如果你抛出的是一个未报告的异常那他就要必须使用trycatch来捕获异常了。而且你要注意如果说你显示抛出一个UnsupportedOperationException之类的异常,调用该方法可以不用自己来亲自捕获异常的,可以直接再往上次抛。RuntimeException异常类以及其子类都属于此范畴,调用者可以不用自己去捕获异常的!
3、子类抛出的异常类型不能比父类抛出的异常类型更宽泛!
4、对于这句话你还少了一个条件应该是子类重写父类方法不能抛出比父类更宽的异常类型的把。其实理解这个很简单,比如说宪法规定骂人只承担民事责任,到了刑法里就不能说直接枪毙了,这就是一个约束能力的问题,子类行为不能超出父类约束范畴。否者就容易乱套。就像父类的某方法公有的,子类就不能重写改成私有的了。这就是一个约束力的问题。
5、还有我查到说抛出runtime异常没有问题。运行时异常虽然可以不用捕获。但如果其本身已经超出了父类的范围呢?
6、这个还是拿宪法民事责任来说把,宪法说骂人教育一下就可以了,到了省里说道个歉就可以了,但是到了市里了,不光道歉还要写检讨。这些都是可以的,因为他们本身就有处理这个事件的能力。子类方法他可以不管RuntimeException之类的异常,这是前提,就算你父类方法声明的异常更小,我可以行使我抛出RuntimeException异常的权利,这个是我的本身就有的权利。这就像是地方政策和国家政策相抵触的时候,老百姓可以直接往国家报告,可以不经过地方政府一样,因为老百姓有直接上报国家的权利。子类有RuntimeException异常不报告的权利,就算你父类规定个更低的异常,我一样可以上报,只要你比RuntimeException低级就可以。
7、这就好比,卖国贼选择了卖国,他们的子女就不能爱国了一样!