黑马程序员技术交流社区
标题:
重载与覆盖区别咨询
[打印本页]
作者:
涐扪①起奮乧
时间:
2013-12-1 00:33
标题:
重载与覆盖区别咨询
本帖最后由 涐扪①起奮乧 于 2013-12-1 21:57 编辑
public class A
{
private void a(int i, int j) throws Exception {...}
protected void b(String s) {...}
}
class B extends A
{
protected void a(int i, int j) throws IOException {...}
public void b(String s) {...}
public void b1(String s, int j){...}
}
overlod是父类方法的重载,方法名称一致,但参数序列或类型不一致
override是父类方法的覆盖,方法名称一致,参数序列和类型完全一致,使用时只调用本类方法,即是覆盖了父类的方法
B中的a方法和第一个b方法覆盖了A中的a, b方法,B中的第b1方法有两种定义方式,所以它被重载了。
我要问的是下面问题:
方法的重载(overload)必须发生在同一个类中。就针对这句话,我不理解。上面例子中不是B和A两个类吗?且B类中的b1方法重载了A类中的b方法。还请解释一下。
作者:
long362144768
时间:
2013-12-1 02:14
B继承了A,A的所有protect和public,默认方法,成员变量都是B的成员,都属于B,所以是重载了,就相当于B继承了A的遗产,可以试一下,在A中定义一个非私有成员变量,B可以访问到,说明这个成员变量也是属于B
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2