多个抽象或接口相关联,且支持实现无限扩展
姓名+旅行城市名
city
public interface City {
void travel();
}
public class NanJin implements City {
@Override
public void travel() {
System.out.println("南京旅行");
}
}
public class XiaMen implements City {
@Override
public void travel() {
System.out.println("厦门旅行");
}
}
name
public abstract class Name {
City city;
public Name(City city) {
this.city = city;
}
public void xiaoFei(){
}
}
public class XiaoMin extends Name {
public XiaoMin(City city) {
super(city);
}
@Override
public void xiaoFei() {
System.out.print("小明去");
city.travel();
}
}
测试
public class Test {
public static void main(String[] args) {
consume(new XiaoMin(new NanJin()));
}
public static void consume(Name name){
name.xiaoFei();
}
}
扩展Name的实现类
public class XiaMei extends Name {
public XiaMei(City city) {
super(city);
}
@Override
public void xiaoFei() {
System.out.print("小美去");
city.travel();
}
}
网友评论