动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Java实现多态的3个必要条件

05-14 17:35 1150浏览
举报 T字号
  • 大字
  • 中字
  • 小字

多态是指允许不同子类型的对象对同一消息做出不同的响应,简单来讲,就是用同样的对象调用同样的方法但是却做了不同的事情。也可以理解为一个事物的多种表现形态。 多态性分为编译时的多态性和运行时的多态性。例如: 方法重载:实现的是编译时的多态性 方法重写:实现的是运行是的多态性 子类对象的多态性,这个是Java多态性中最常用的事。

实现多态的条件

  • 要有继承。
  • 要有方法的重写。
  • 父类引用指向子类对象

1.方法重写,也就是说要有继承吧,只有有了继承,子类重写了父类已有的或抽象的方法 2.对象造型,也就是说要有父类的引用指向子类对象 只有这样,同样的引用调用同样的方法就会作出不同的响应,简单来讲如下代码所示: 父类Person有如下方法:

public void walk(){
	System.out.println("人走路");
}

public void eat(){
	System.out.println("人吃饭");
}

如果子类Man类没有重写这两个方法,那么我们做如下的事情:

	Person man = new Man();
    man.walk();

输出结果:

人走路

综上所述:父类引用man指向的是子类对象,这个就是子类对象的多态性(也叫向上转型),man可以调用父类的方法,前提是子类没有重写父类方法。 如果子类Man类重写了父类方法

public void walk(){
	System.out.println("男人应该挺拔的走路");
}

public void eat(){
	System.out.println("男人应该多吃肉");
}

同样的调用:

Person man = new Man();
man.walk();

结果就是:

男人应该挺拔的走路

综上所述:子类对象重写了父类方法,那么man调用父类方法,执行的就是子类的方法。这个也虚拟方法调用,说到这里你应该可以猜到,什么是多态了吧,就是同样的父类对象应用,指向不同的子类对象,就会作出不同的响应,例如子类Woman类也重写了父类的方法:

public void walk(){
	System.out.println("女人应该温柔的走路");
}

public void eat(){
	System.out.println("女人应该少吃肉多吃水果蔬菜");
}

调用方法:

Person man = new Man();
Person woman = new Woman();
man.walk();
woman.walk();

结果为:

男人应该挺拔的走路
女人应该温柔的走路

综上所述:应该是很清晰了什么是子类对象的多态性,就是你相同的父类引用,不同的子类对象,就会响应对应的子类对象的方法。

本文对Java多态的实现条件讲的已经很透彻了,动力节点在线的视频课程还有许多的精彩课程等你免费来学!

0人推荐
共同学习,写下你的评论
0条评论
代码小兵652
程序员代码小兵652

113篇文章贡献392215字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消