JAVA:重载与重写的区别

来源:互联网 发布:软件测试是什么 编辑:程序博客网 时间:2024/05/30 23:34

单看字面意思的话,其实是很难分清楚什么是重载,什么是重写的。而在使用的时候,也是很难区分的。

    在很多面试中也很喜欢考这样的问题,以求面试者知识的掌握程度。

其实在我看来,这两个根本就是两个概念,重载就是根据参数的不同而进行区别同名函数的。重写就是连参数

都是一样的。用一名话概括就是:重载在一个类中,而重写是在两个有继承关系的类中。

示例:

public class OverloadTest
{
int add()
{
return 2 + 3;
}

int add(int i1, int i2)
{
return i1 * i2;
}

public static void main(String[] args)
{
OverloadTest ex = new OverloadTest();
int iTest = ex.add();
System.out.println(iTest);

iTest = ex.add(2, 3);
System.out.println(iTest);
}
}

这个例子说有就是重载。

public class OverridingTest
{
public static void main(String[] args)
{
plus test = new plus();
int iTest = test.add();
System.out.println(iTest);

pluschild text = new pluschild();
iTest = text.add();
System.out.println(iTest);
}
}


class plus
{
int add()
{
return 2 + 3;
}
}


class pluschild extends plus
{
int add()
{
return 2 * 3;
}

}


这个例子说的就是重写。

public class RandomTest
{


public static void main(String[] args)
{
plus test = new plus();
int iTest = test.add();
System.out.println(iTest);

plus text = new pluschild();
iTest = text.add();
System.out.println(iTest);
}
}


class plus
{
int add()
{
return 2 + 3;
}
}


class pluschild extends plus
{
int add()
{
return 2 * 3;
}

}

声明:文中的代码不论简单还是复杂都是经过验证的,正确的代码不存在伪代码,因为自己在学习时碰到伪代码自己也会头疼的。如果以后不得不出现伪代码时,我会标注出来,不会浪费大家的时间的。博客中也许出现情况不周或由于自己理解不透而引起的些许错误。希望大家发现能及时在评论中提出。


0 0
原创粉丝点击