java语言中方法的多态

文章目录


前言

        自然界中,生物是多种形态的,繁殖这一行为也是多样的,细菌是裂殖,禽类是卵生,哺乳动物是胎生......java语言中的一个创建的方法,看成这个例子中的"繁殖",那么想要在不同类中(不同生物身上)实现对应的怎么"繁殖",这就要用到"多态"


一、多态是什么?

        多态,将同一个方法,通过多个子类继承父类子类覆写父类方法,在同包的类上,父类对象子类实例化,实现同一个代表某种行为的方法,产生不同的具体效果

二、使用步骤

1.实操展示

        情景:养殖场中养着鸡、鸭、鹅三种禽类,养殖场中配备了传感器,每产出一个蛋,后台都会记录出产了什么蛋

        思考:鸡、鸭、鹅三种动物都进行着同一种行为,产蛋,只是产的蛋具体为鸡、鸭、鹅的蛋,利用“多态”的思维即可

         第一步 创建父类 Animal类,创建 produce 方法

package package3;

public class Animal {
	void produce(){
	}
}

        第二步 创建子类 Chicken类,Goose类,Duck类,覆写 produce 方法 改为相应的内容

                 (1)Chicken类

package package3;

public class Chicken extends Animal{
	void produce() {
		System.out.println("获得一枚鸡蛋");
	}
}

                (2)Goose类

package package3;

public class Goose extends Animal{
	void produce(){
		System.out.println("获得一枚鹅蛋");
	}
}

                 (3)Duck类

package package3;

public class Duck extends Animal{
	void produce() {
		System.out.println("获得一枚鸭蛋");
	}
}

         第三步 创建Demo类

                        1.通过随机数,生成0,1,2,模拟鸡鸭鹅的随机产卵,0 为鸡蛋,1为鹅蛋,2为鸭蛋

                        2.创建 父类对象 通过子类 实例化,调用对应子类的produce()方法

package package3;

import java.util.Random;

public class Demo {

	public static void main(String[] args) {
		Random num = new Random();
		int num0 = 0 , num1 = 0 , num2 = 0;
		for(int i=0;i<5;i++) {
			int j = num.nextInt(3);    //模拟鸡鸭鹅的随机产卵,0 为鸡蛋,1为鹅蛋,2为鸭蛋
			if(j==0) {
				Animal chicken = new Chicken();   // Animal 对象 Chicken类实例化
				chicken.produce();   //调用Chicken类中的 produce方法
				num0++;
			}if(j==1) {
				Animal goose = new Goose();	      // Animal 对象 Goose类实例化
				goose.produce();	 //调用Goose类中的 produce方法
				num1++;
			}if(j==2) {
				Animal duck = new Duck();		  // Animal 对象 Duck类实例化
				duck.produce();		 //调用Duck类中的 produce方法
				num2++;
			}
		}
		System.out.println("------------------------");
		System.out.println("         养殖场库存        ");
		System.out.println("鸡蛋个数:"+num0);
		System.out.println("鹅蛋个数:"+num1);
		System.out.println("鸭蛋个数:"+num2);
		System.out.println("------------------------");
	}
}

         结果展示: 

         如Demo类中的代码所示,分别调用了三个 produce()方法,而三个方法,名称相同,输出结果却分别是 鸡蛋,鹅蛋,鸭蛋。这便是多态的思维。

2.注意事项

                在某些情况下,需要用到多态的思维时,我们会发现,不用多态的思维,也可以解决,而这常常在代码框架上留下了逻辑漏洞。

                 出现BUG时,我们编写的程序,没有明确的逻辑和框架,Debug的时间将大大增长,哪出错了?为什么出错了?改错后会不会对其他的功能产生影响?于是一支烟,发呆一整天。

                 多态是java面向对象编程的一个重要概念,让我们的代码模块化,在做大项目时,模块化决定着这个项目的维护成本。打个比方,一辆车,前保险盖冒烟了,我们立马知道是车的引擎出了问题,修引擎即可,不用把汽车全部拆开,也不用担心引擎没修好,会影响车的轮胎。

                 因此,多态在做大项目中,必不可缺。 


总结

        以上就是java中方法的多态思想,本文仅简单介绍了多态的使用,更加巧妙的运用,还需要我们在编写项目中实际操作。文章中提到,创建父类对象,通过子类实例化,不理解的话,下一篇文章将会解释。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵果森森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值