接口类型的数组作为形参

你见过接口类型数组做形参吗?为啥用接口类型做形参,有啥好处?且随我往下看

示例

package interfaceArray;
public interface Pet {
    
    
	/**
	 * 动物跑步 
	 */
	public void run();
	
	/**
	 * 动物吃饭
	 */
	public void eat();
}
package interfaceArray;
public class Bird implements Pet{
    
    
	public void run() {
    
    
		System.out.println("鸟跑步");
	}
	public void eat() {
    
    
		System.out.println("鸟吃饭");	
	}
}
package interfaceArray;
public class BaiLingBird extends Bird {
    
    
	public void eat(){
    
    
		System.out.println("百灵鸟吃饭");
	}
}
package interfaceArray;
public class Test {
    
    
	Bird bird1 = new Bird();
	Bird bird2 = new Bird();
	Bird[] birds = {
    
    bird1,bird2};
	BaiLingBird baiLingBird1 = new BaiLingBird();
	BaiLingBird baiLingBird2 = new BaiLingBird();
	BaiLingBird baiLingBird3 = new BaiLingBird();
	BaiLingBird[] baiLingBirds = {
    
    baiLingBird1,baiLingBird2,baiLingBird3};
	public static void main(String[] args) {
    
    
		Test test = new Test();
		//birds不是静态的,所以调用需要实例化
		System.out.println(test.lengt(test.birds));
		System.out.println(test.lengt(test.baiLingBirds));
	}
	//用接口数组作为形参,只要是继承过这个接口的参数都可以传递进来
	public int lengt(Pet[] pet){
    
    
		return pet.length;
	}
}

优点

接口类型数组作为形参,那么只需要继承过此接口的数组就可以作为实参,而且传入的参数可以调用接口的方法。
同理常见的也有父类做形参,或许你也可以试试接口做形参

相关设计模式

策略模式吗?学艺不精,还请诸位补充

猜你喜欢

转载自blog.csdn.net/moqianmoqian/article/details/108756485