java实现多态的两种方式(接口、抽象类)

抽象类实现多态:
父类对象指向子类对象,可调用子类的重写方法。
接口实现多态:
接口对象指向实现类对象,可调用实现类的重写方法
以下就是生活中两种多态的实例,**抽象类是模板,接口是功能。

**描述:
接口、抽象类实现多态图
Door.java 抽象类

package com.dialogd.polymorphic;
//抽象类,抽象类是一种模板
public abstract class Door {
	//开门的方法
	public abstract void open();
}

IFace.java 接口1

package com.dialogd.polymorphic;
//人脸识别的功能,接口是功能时
public interface IFace {
	//人脸识别的功能
	public void checkFace();
}

IHander.java 接口2

public interface IHander {
	//指纹识别功能
	public void checkHander();
}

SafeDoor.java

public class SafeDoor extends Door implements IHander {

	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println("普通安全门开门...");
	}

	@Override
	public void checkHander() {
		// TODO Auto-generated method stub
		System.out.println("普通安全门的指纹识别...");
	}
}

SuperDoor.java

public class SuperDoor extends Door implements IHander,IFace {

	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println("超级安全门开门...");
	}

	@Override
    	public void checkFace() {
    		// TODO Auto-generated method stub
    		System.out.println("超级防盗门的人脸识别...");
    	}
    
    	@Override
    	public void checkHander() {
    		// TODO Auto-generated method stub
    		System.out.println("超级防盗门的指纹识别...");
    	}
    
    }

Test.java

public class Test {
	public static void main(String[] args) {
		//抽象类实现多态
		Door door = new SafeDoor();
		//父类对象指向子类对象,可调用子类的重写方法
		door.open();
		door = new SuperDoor();
		door.open();
		

		//接口实现多态
		IHander iHander = new SafeDoor();
		//接口对象指向实现类对象,可调用实现类的重写方法
		iHander.checkHander();     
		
		iHander = new SuperDoor();
		iHander.checkHander();
		IFace iFace = new SuperDoor();
		iFace.checkFace();
	}
}

抽象类Door.java对子类(普通安全门)SafeDoor.java、(超级安全门)SuperDoor.java实现了多态。
接口IHander、IFace对是实现类SafeDoor.java、SuperDoor.java实现了多态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值