最近在看这个书中,看到这个重载和重写的时候。
重载则是必须依照类中的方法参数对应。包括类型和个数。否则报错
重写为了普通类继承和接口(接口的没说是重写,但实现方法和重写感觉一样,暂且归为一种概念)
然后类继承和接口重写时,参数类型,个数都可以重新指定?尤其是像接口,给个空参数方法,实现时方法随意可以指定任何参数?
是这样的吗?还是我理解错误了
首先,你的理解是错误的。
重载与重写,参照的对象不一样。
重载:是对于一个类本身而言的,比如,我有一个方法定义为float add(float a, float b),然后,我再定义一个方法long add(long a, long b)。这样,我可以用这个类来计算浮点数加法,也可以计算长整型加法。
重写:是对于有继承关系的父子类来说的。比如,A类有方法long add(long a, long b),
public long add(long a, long b){
system.out.println("=====call A.add======");
}
B继承于A,如果B没有重写这个long add(long a, long b)方法,B.add就会打印出"=====call A.add======"。
但是,如果B中定义一个方法如下:
public long add(long a, long b){
system.out.println("=====call B.add======");
}
那么,B.add就会打印出"=====call B.add======"。
重载与重写,存在的方式不一样。
重载:是并列存在的,也就是你定义了几个,就可以调用几个。
重写:是覆盖性的,只会直接存在一个。
不是啊,重载和重写我知道,我的重点要问的是,继承的重写和接口的“重写”,都可以改变原来的参数类型,个数?
追答重写,是覆盖性的,所以,只有名称和参数完全一致,才叫做重写,否则,就是重载了。能明白吗?
本回答被提问者和网友采纳