3 回答
TA贡献1868条经验 获得超4个赞
同一类型的方法,对不同的对象,具有不同的表现形式
class Student
{
void say()
{
System.out.println("老师,劳累你了。。。");
}
}
class Leader
{
void say()
{
System.out.println("同志们,辛苦你们了。。。");
}
}
class SayHello
{
void greeting(Student stu) //学生打招呼的方式
{
stu.say();
}
void greeting(Leader lea) //领导打招呼的方式
{
lea.say();
}
}
public final class Maintest {
public static void main(String[] args) {
Student stu=new Student();
Leader lea=new Leader();
SayHello sh=new SayHello();
sh.greeting(stu);
sh.greeting(lea);
}
}
同样是打招呼的greeting()方法,“学生和领导”两个对象不同,打招呼的形式也就不同
TA贡献1825条经验 获得超6个赞
java是面向对象的,一个对象有多种形态,每个状态的处理和变现都是不一样的,这一点与自然界的物体相同,重载的好处在于,对象在不同状态下(多态)调用重载函数得到的结果可以不一样。形成多种处理方式,就好比你去取钱,可以在ATM中取,也可以在柜台服务员哪里受理。至于你是那种我们不得而知,我只知道你去“取钱”(如同重载的函数名),这两种方式有不同的物体和你完成操作,ATM和柜台服务员,因此他们成为你区分这两个“取钱”的方式,就像重载函数通过所传递的参数来区分一样。说白了重载就是在编译期间就知道你有多少种手段解决问题。
添加回答
举报