javaSE基础之多态

多态的介绍和使用


前言

多太的使用方法和使用场景介绍


一、多态(polymorphic)是什么?

概念 : 将子类对象保存到父类的变量中(向上造型/向上转型),当父类变量调用方法时,如果子类重写了该方法,则会直接执行子类中重写的方法
简单理解 : 可以看成一种事物多种形态
示例 :
今天晚上大家请我吃大餐 : 龙虾 喝粥 思想大餐…
我准备买一辆车: 独轮车 自行车 拖拉机 布加迪模型…

二、使用步骤

1.创建类和子类

代码如下(示例):

public class Biology {
  int age = 1;		// 定义一个成员变量
  public void eat() {	// 创建一个公共的方法eat
  System.out.println("都可以吃");
  }
}
public class Person extends Biology () {
	int age = 20;
    @override
 	public void eat() {			// 重写父类的方法
 	System.out.println("吃大鱼大肉大虾");
 	}
 	public void coding() {			// 自己的私有方法
 	System.out.println("吃我还会写代码");
 	}
}
public class Pig extends Biology () {
	int age = 2;
    @override
 	public void eat() {			// 重写父类的方法
 	System.out.println("吃猪饲料");
 	}
 	public void gongbaicai() {			// 自己的私有方法
 	System.out.println("我拱白菜");
 	}
 	

}

2.测试类

代码如下:

public class AnimalTest {
	Animal animal = new Person(); // 将子类的地址赋值给父类的变量中
	Animal animal2 = new Pig();   // 将Pig的子类地址赋值给父类变量
	animal2 = new Person();
	animal.eat();  // "吃大鱼大肉大虾" 此时打印的是Person中的eat()方法 ,多态
	System.out.println(animal.age) // 打印 1 ;
	animal2.eat(); //"吃猪饲料"  此时打印的是Pig中的eat()方法
}
/**
此处是调用子类中特有方法,必须先判断,进行强制转换	
*/
if(父类变量 instanceof 子类类型1){
		//强制类型转换
		子类类型1	子类变量 = (子类类型1)父类变量;
		//现在就可以调用子类特有方法
		子类变量.子类特有方法(...);
	   }else if(父类变量 instanceof 子类类型2){
		//强制类型转换
		子类类型2	子类变量 = (子类类型2)父类变量;
		//现在就可以调用子类特有方法
  		子类变量.子类特有方法(...);
  	  }
  	  if (animal2 instanceof Person) {
			Person person = (Person)animal ; // 现在就可以调用子类特有的方法
			person.coding();
		} else if(animal2 instanceof Pig) {
			Pig pig = (Pig)animal;
			pig.gongbaicai();
		}
  	  

总结

这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了多态的使用,而多态还要很多实用场景各位可以试一试

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值