11、多态

一、多态

 

    某一类事物的多种形态

 

  1. 体现:父类或者接口的引用指向或者接收自己的子类对象。。如:动物 y = new 猫
  2. 作用:多态的存在提高了程序的扩展性和后期可维护性
  3. 前提:1,需要存在继承或者实现关系 2,要有覆盖操作
  4. 弊端:虽然提高了扩展性,但是只能使用父类的引用访问父类中的成员
  5. 多态自始至终都是子类的对象在做着变化

二、特点

 

  1. 多态调用: 父类 f = new 子类();
  2. 成员函数:在多态调用时,编译看左边,运行看右边
  3. 成员变量:无论编译和运行中,都参考左边(引用型变量所属的类)
  4. 静态成员函数:无论编译和运行中,都参考左边
  5. 示例:
//多态的示例:电脑主板
interface Pci//pci接口,提高了功能扩展性
{
	public void open();
	public void close();
}
class MainBoard//主板
{
	public void run()
	{
		System.out.println("main run");
	}
	public void usePci(Pci p)//提高了程序扩展性
	{
		if(p != null)
		{
			p.open();
			p.close();
		}
	}
}
class NetCard implements Pci//网卡
{
	public void open()
	{
		System.out.println("NetCard open");
	}
	public void close()
	{
		System.out.println("NetCard close");
	}
}
class SoundCard implements Pci//声卡
{
	public void open()
	{
		System.out.println("SoundCard open");
	}
	public void close()
	{
		System.out.println("SoundCard close");
	}
}
class DuoTaiDemo
{
	public static void main(String[] args)
	{
		MainBoard mb = new MainBoard();
		mb.run();
		mb.usePci(new NetCard());
		mb.usePci(new SoundCard());
	}
}
/*运行结果是:
main run
NetCard open
NetCard close
SoundCard open
SoundCard close
*/

 

三、多态的出现思想上也做着变化

 

  1. 以前是创建对象并指挥对象做事情。
  2. 有了多态以后,我们可以找到对象的共性类型,直接操作共性类型做事情即可,这样就可以指挥一批对象做事情,即通过操作父类或接口实现。
  3. 如果想使用子类的特有方法:可以先instanceof 判断是否是指定的类,然后强转
  4. 示例:
Person p = new Student();

if(p instanceof Student)
{
	Student stu = (Student)p;
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值