package com.zwy.day2;
/*比工厂类,多了一个就是工厂类多了一个父类*/
public class AbstractFactory {
public static void main(String[] args) {
Factory factory = new SubFactory();
Operator operator = factory.createOperator();
operator.setNumberA(1);
operator.setNumberB(99);
System.out.println(operator.getResult());
}
}
/*抽象类运算类*/
abstract class Operator{
public int NumberA;
public int NumberB;
public abstract int getResult();
public int getNumberA() {
return NumberA;
}
public void setNumberA(int numberA) {
NumberA = numberA;
}
public int getNumberB() {
return NumberB;
}
public void setNumberB(int numberB) {
NumberB = numberB;
}
}
/*加法运算*/
class OperatorAdd extends Operator{
@Override
public int getResult() {
return getNumberA() + getNumberB();
}
}
/*减法运算*/
class OperatorSub extends Operator {
@Override
public int getResult() {
return getNumberA() - getNumberB();
}
}
abstract class Factory {
public abstract Operator createOperator();
}
class AddFactory extends Factory {
@Override
public Operator createOperator() {
return new OperatorAdd();
}
}
class SubFactory extends Factory {
@Override
public Operator createOperator() {
return new OperatorSub();
}
}