欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > JAVA 基础-多态

JAVA 基础-多态

2024/11/6 23:22:00 来源:https://blog.csdn.net/m0_61164038/article/details/143456896  浏览:    关键词:JAVA 基础-多态

一、概念

1.1 说说你对Java多态怎么理解

多态是指允许不同类的对象对同一消息作出响应。即同一个接口,使用不同的实例而执行不同操作。多态性可以分为编译时多态(重载)和运行时多态(重写)。它使得程序具有良好的灵活性和扩展性。

1.3 重载和重写

  • 重载(Overload)‌:在同一个类中,定义相同的方法名,但参数不同(参数类型、个数、顺序可以不同)。重载是编译时的多态性,对返回类型没有要求。‌

  方法重载是指在同一个类中可以定义多个方法,它们的名称相同但参数列表不同(包括参数个数、类型或顺序)。在编译时,Java编译器会根据传入的参数类型或数量来决定调用哪个方法

  

class MathUtils {public int add(int a, int b) {return a + b;}public double add(double a, double b) {return a + b;}public int add(int a, int b, int c) {return a + b + c;}
}
  • 重写(Override)‌:子类重写父类的方法,方法名和参数列表必须相同,返回类型可以兼容。重写是运行时的多态性,访问修饰符的限制要大于被重写方法的修饰符。

方法重写是指子类可以重写父类的方法,实现不同的行为。当我们通过父类的引用来调用被重写的方法时,实际执行的是子类中的方法。这种特性是“运行时多态”的实现,Java通过动态绑定来实现这一点。

class Animal {void sound() {System.out.println("Animal makes a sound");}
}class Dog extends Animal {void sound() {System.out.println("Dog barks");}
}class Cat extends Animal {void sound() {System.out.println("Cat meows");}
}// 使用
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.sound(); // 输出: Dog barks
myCat.sound(); // 输出: Cat meows

1.3 重载和重写的范围

  • 重载‌:发生在同一个类中,对方法的参数进行区分。
  • 重写‌:发生在子类与父类之间,子类重写父类的方法。

1.4 重载和重写的多态性

  • 重载‌:是编译时的多态性,根据传入参数的不同调用相应的方法。
  • 重写‌:是运行时的多态性,通过继承机制,子类可以提供父类方法的特定实现。

1.5 重载和重写的参数要求

  • 重载‌:参数的个数、类型、顺序可以不同。
  • 重写‌:参数必须完全相同。

1.6 重载和重写的访问修饰符要求

  • 重载‌:对访问修饰符没有特殊要求。
  • 重写‌:访问修饰符的限制要大于被重写方法的修饰符(public > protected > default > private)。

1.7 重载和重写的异常处理要求

  • 重载‌:可以抛出不同的异常。
  • 重写‌:不能抛出新的检查异常或者比被重写方法声明更加宽泛的检查型异常。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com