JAVA多态

Java多态

1.多态是同一个行为具有多个不同表现形式或形态的能力。

2.多态就是同一个接口,使用不同的实例而执行不同操作。

多态的优点:

  1. 消除类型之间的耦合关系
  2. 可替换性
  3. 可扩充性
  4. 接口性
  5. 灵活性
  6. 简化性

多态存在的三个必要条件:

  1. 继承
  2. 重写
  3. 父类引用指向子类对象

举个例子:

//鱼香肉丝(子类)
public class yxrs extends Cai{

	@Override
	public void Show() {
		// TODO Auto-generated method stub
		System.out.println("鱼香肉丝");
	}

}
//宫保鸡丁(子类)
public class gbjd extends Cai{

	@Override
	public void Show() {
		// TODO Auto-generated method stub
		System.out.println("宫保鸡丁");
	}
	
}
public class Factory {
	//生产子类对象
	public static Cai product(String str){
		if(str.equals("宫保鸡丁"))
		{
			return new gbjd();
		}
		else if(str.equals("鱼香肉丝"))
		{
			return new yxrs();
		}
		else
		{
			return null;
		}
	}
}
//抽象类
public abstract class Cai {
	public abstract void Show();
}

//测试类
import java.util.Scanner;

public class Test {
	public static void main(String[] args)
	{
		Scanner input=new Scanner(System.in);
		System.out.print("输入要点的菜(1.宫保鸡丁   2.鱼香肉丝):");
		int tag=input.nextInt();
		Cai cai=null;
		if(tag==1)
		{
			cai=Factory.product("宫保鸡丁");
		}
		else
		{
			cai=Factory.product("鱼香肉丝");
		}
		cai.Show();
	}
}

抽象类可以想象成为饭店;而鱼香肉丝、宫保鸡丁是属于饭店的子类(也就是菜);生产子类对象可以想象为厨师来做出这些菜。

instanceof运算符
instanceof运算符返回一个布尔值,表示对象是否为某个构造函数的实例。instanceof运算符的左边是实例对象,右边是构造函数,它会检查右边构造函数的原型对象(prototype),是否在左边对象的原型链上。由于instanceof检查整个原型链,因此同一个实例对象,可能会对多个构造函数都返回true。

注意:instanceof运算符只能用于对象,不适用原始类型的值;对于undefined和null,instanceof运算符总是返回false。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值