JAVA多态

JAVA 多态

面向对象程序设计的三大支柱是封装、继承和多态。

在这里插入图片描述

概念

多态(baiPolymorphism)按字面的意思就是“多种状态”,指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。
首先定义两个有用的术语:子类型父类型。实际上一个类定义了一种类型。子类定义的类型称为子类型(subtype), 而父类定义的类型称为父类型(supertype)。
举个例子:
球场上一共有三种运动器材:
A:篮球
B:足球
C:网球
这里所表现的的就是多态。篮球、足球、网球都有一个共同 的特性——它们都是球类。但它们又都是球的子类。我们只是通过球这一父类就能够引用不同的子类,这就是多态。

实现形式

在Java中有两种形式可以实现多态:继承和接口。
本文基于继承来实现多态
仍然是上面的例子。定义父类为Ball, 三个子类分别为baskeball、football、tennisball。
父类:

public class Ball {
	public void Out() {
		System.out.println("play ball");
	}
}

子类:
1、篮球:

public class basketball extends Ball{
	public void Out() {
		System.out.println("play basketball");
	}
}

2、足球:

public class football extends Ball{
	public void Out() {
		System.out.println("play football");
	}
}

3、网球:

public class tennisball extends Ball{
	public void Out() {
		System.out.println("play tennisball");
	}
}

对其父类和子类的多态进行测试:

public class Test {

	public static void main(String[] args) {
		Ball a1 = new basketball();
		Ball a2 = new football();
		Ball a3 = new tennisball();
		a1.Out();
		a2.Out();
		a3.Out();
	}
}

可以得到结果:
在这里插入图片描述
由此可知多态是同一个行为具有多个不同表现形式或形态的能力。

*instanceof关键字

通过instanceof用来判断某个对象是否属于某种数据类型。

public class Test {

	public static void main(String[] args) {
		Ball a1 = new basketball();
		Ball a2 = new football();
		Ball a3 = new tennisball();
		if(a1 instanceof basketball) {
			System.out.println("a1 是属于 basketball");
		}
		else {
			System.out.println("a1 不属于 basketball");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值