开放-封闭原则
/**
* java设计模式-开放封闭原则
*/
public interface FindPerson {
public int getAge();
public String getFace();
public String getName();
}
public class FindMan implements FindPerson {
private String name;
private int age;
private String face;
public FindMan(String name,int age,String face){
this.name=name;
this.age=age;
this.face=face;
}
@Override
public int getAge() {
return age;
}
@Override
public String getFace() {
return face;
}
@Override
public String getName() {
return name;
}
}
扩展方法
刚才我们测试方法可以找出张三,李四,但是我想说我找的这个人是外国人,怎么办?我们该怎么修改写好的提示?首先我们需要写一个接口,继承找人接口,只不过我们需要添加一个方法,变成外国人 如下:
/**
*/
public interface FindForeignPerson extends FindPerson {
public String getCountry();
}
然后,实现这个接口,如下:
public class FindForeignMan implements FindForeignPerson {
private String name;
private String country;
private int age;
private String face;
public FindForeignMan(String name,int age,String face,String country){
this.name=name;
this.country=country;
this.age=age;
this.face=face;
}
@Override
public String getCountry() {
return country;
}
@Override
public int getAge() {
return 0;
}
@Override
public String getFace() {
return null;
}
@Override
public String getName() {
return null;
}
}
测试代码
public class Test {
public static void main(String[] args) {
List<FindForeignMan> personList=new ArrayList<FindForeignMan>();
personList.add(new FindForeignMan("小王", 23,"椭圆形","英国"));
personList.add(new FindForeignMan("蓉蓉", 21,"圆形","日本"));
for(FindForeignMan persons:personList){
System.out.println("persons:"+persons.getCountry());
}
}
}