A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

小强v587

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

方法重载和方法重写有啥区别呀?

4 个回复

正序浏览
重写只存在于继承中,
重载只是函数 1、方法名相同
                   2、参数列表不同
回复 使用道具 举报
方法重写:子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致(或者是子父类)的
方法重载:本类中出现的方法名一样,参数列表不同的方法。与返回值类型无关。
回复 使用道具 举报
重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一样,但是参数的类型或个数不同,此时B重载了A。例如:
public class TestClass{
public int test(int i){return 1;}
public int test(float f){return 1;}
}

重写:一个类M继承另一个类N,N中有一个方法A,这时你在M写了一个方法B,方法B的名字、返回值以及参数都和A一样,此时B重写了A。
例如:

public class TestClass1{
public int test(int i){return 1;}
}

public class TestClass2 extends TestClass1{
public int test(int i){return 2;}
}
回复 使用道具 举报
方法重载是在一个类里多个定义,只是参数列表不同或返回值不同,
方法的重写是子类重新定义父类或接口中的同名函数实体部分。函数名返回值参数列表都不可以改变,函数体代码块可以改变。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马