java用接口展示多态
/**
* @author Kyle
* @version 1.0 2018年11月29日 NEW
* @function 定义一个接口
*/
public interface Bird {
// 接口只是定义一个抽象的行为,不做具体实现
public void color();
}
-------------------------------------------------------
/**
* @author Kyle
* @version 1.0 2018年11月29日 NEW
* @function 蓝色鸟实现类
*/
public class BlueBird implements Bird{
// 实现接口的方法,显示自己的行为
public void color() {
System.out.println("蓝色");
}
}
------------------------------------------------------
/**
* @author Kyle
* @version 1.0 2018年11月29日 NEW
* @function 红色鸟实现类
*/
public class RedBird implements Bird{
// 实现接口的方法,显示自己的行为
public void color() {
System.out.println("红色");
}
}
-----------------------------------------------------
/**
* @author Kyle
* @version 1.0 2018年11月29日 NEW
* @function 人
*/
public class Person {
private Bird bird; // 只定义一个接口,就可以传入多种行为(只要是Bird的实现类都可以),就是应该依赖抽象,而不是具体的实现
public Person(Bird bird){
this.bird = bird;
}
// 具体的打印
public void myBirdColor(){
bird.color();
}
}
-------------------------------------------------
/**
* @author Kyle
* @version 1.0 2018年11月29日 NEW
* @function 测试多态
*/
public class Test {
public static void main(String[] args) {
// Bird接口定义,RedBird子类实现
Bird redBird = new RedBird();
redBird.color(); // 此时打印的就是子类的行为,即子类实现的方法(函数)内容
// 红色
Bird blueBird = new BlueBird();
blueBird.color();
// 蓝色
System.out.println("-----------------");
Person person = new Person(redBird);
person.myBirdColor();
person = new Person(blueBird);
person.myBirdColor();
}
}