前言: IT培训网小编来给大家举Java多态性的例子,多态性是OOP的功能之一,它允许我们以不同的方式执行单个操作。例如,
IT培训网小编来给大家举Java多态性的例子,多态性是OOP的功能之一,它允许我们以不同的方式执行单个操作。例如,假设我们有一个Animal有方法的类sound()。因为这是一个通用类,所以我们不能给它一个实现,比如:Roar、Meow、Oink 等。我们必须给出一个通用的消息。
public class Animal{ ...
public void sound(){
System.out.println("Animal is making a sound");
}
}
现在假设我们是 Animal 类的两个子类:Horse它Cat扩展了Animal类。我们可以像这样为相同的方法提供实现:
public class Horse extends Animal { ... @Override public void sound (){ System . 出来。println ( "邻居" ); } }
和
public class Cat extends Animal{
...
@Override
public void sound(){
System.out.println("Meow");
}
}
正如你所看到的,虽然我们对所有子类都有共同的行动,sound()但有不同的方式来做同样的行动。这是多态性的完美示例(允许我们以不同方式执行单个操作的功能)。只调用通用 sound() 方法是没有任何意义的,因为每个 Animal 都有不同的声音。因此我们可以说这个方法执行的动作是基于对象的类型。
运行时多态示例:
Animal.java
public class Animal{
public void sound(){
System.out.println("Animal is making a sound");
}
}
Horse.java
class Horse extends Animal{
@Override
public void sound(){
System.out.println("Neigh");
}
public static void main(String args[]){
Animal obj = new Horse();
obj.sound();
}
}
输出:
Neigh
Cat.java
public class Cat extends Animal{
@Override
public void sound(){
System.out.println("Meow");
}
public static void main(String args[]){
Animal obj = new Cat();
obj.sound();
}
}
输出:
Meow
另一方面,方法重载是一个编译时多态性示例。
class Overload
{
void demo (int a)
{
System.out.println ("a: " + a);
}
void demo (int a, int b)
{
System.out.println ("a and b: " + a + "," + b);
}
double demo(double a) {
System.out.println("double a: " + a);
return a*a;
}
}
class MethodOverloading
{
public static void main (String args [])
{
Overload Obj = new Overload();
double result;
Obj .demo(10);
Obj .demo(10, 20);
result = Obj .demo(5.5);
System.out.println("O/P : " + result);
}
}
这里方法demo()重载了 3 次:第一个方法有 1 个 int 参数,第二个方法有 2 个 int 参数,第三个方法有 double 参数。调用哪个方法取决于我们在调用方法时传递的参数。这发生在运行编译时,因此这种类型的多态性称为编译时多态性。
输出:
a : 10
a和b : 10 , 20双a : 5.5
O / P : 30.25
以上就是小编举的Java多态性的例子,大家如果想了解更多相关知识,不妨来关注一下IT培训网的Java视频教程,里面的课程内容从入门到精通,细致全面,通俗易懂,很适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。
文章出自:http://qh.itpxw.cn/peixun/software/2022123606.html
文章标题:Java多态性的例子
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2024-02-20 13:02
Java定义方法的格式是什么?IT培训网小编来告诉大家。所谓方法...
大家在Java教程中会学到关于Java消息推送的知识,那么,Java消息...
常用的Java日期格式转换有哪些?IT培训网小编来告诉大家。 1...
Java创建对象数组的方法是什么?IT培训网小编来告诉大家。Ja...