9.多态

多态

一:

1.什么是多态?

:

同一父类类型,调用其同一方法后,表现出不同的状态,称为多态

2.什么时候使用多态?

:

当程序业务有变更时,增加代码的同时,还需要修改原有代码,带来大量的工作量 解决办法:使用多态

3.多态的特点:

父类:定义一个虚方法(没有方法体的方法)
子类:重写父类中的虚方法

4.多态的实现方式及区别:

  • ①:方法重载:
    用静态的方式实现多态,在程序编译的过程中,重载的方法就已经确定,重载的若干个方法同时加载到内存中,在执行时,根据参数的情况决定调用哪一个方法
  • ②:方法重写/方法覆盖:
    在编译及内存加载时,子类的方法并没有覆盖掉父类中被重写的方法,只有在调用过程中,判断是哪个子类调用的,然后用这个子类中的方法区覆盖父类中的方法.
    由于参数的类型是父类类型,所以调用的是父类中的方法,根据具体传递的实参,实参是哪个子类的类型,就用这个子类中的方法区覆盖掉父类中的虚方法

二:

多态的使用步骤:

  • :在父类中编写共同的方法,但方法体为空的虚方法
		public void eat(){

		}
  • :在子类中重写父类中的虚方法
  • :在使用时,用父类做类型,具体使用子类对象

里氏替换原则LSP:任何父类出现的位置,都可以使用其子类对象进行替换,方法的参数是父类类型,传递实参时,可以传递其子类对象


三:多态的应用:

对象数组

	Pet[] arr = new Pet[10];
		
		Dog dog = new Dog();
		dog.setName("狗狗");
		dog.setAge(5);
		dog.setSex('公');
		dog.setStrain("泰迪");
		
		Cat cat = new Cat();
		cat.setAge(2);
		cat.setName("猫猫");
		cat.setSex('母');
		cat.setColor("彩色");
		
		Pig pig = new Pig();
		pig.setName("猪猪");
		pig.setAge(3);
		pig.setSex('母');
		pig.setLoad(200);
		
		arr[0] = dog;
		arr[1] = cat;
		arr[2] = pig;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值