首先来说封装,封装封装,那就得有封,再得有装。
那么什么是封呢?在大话设计模式这本书中简单工厂模式的父类运算类中的两个属性,numberA,numberB就是封,属性要私有,还得有装,属性私有之后,我外部向访问这两个属性怎么办呢,这个时候访问器就出来了。有get和set这两个方法,是共有的,外部无法直接访问Operation类的两个属性,只能通过访问器来访问。这就是封装。
那么什么是继承呢?
四个具体的加法类、减法类、除法类和乘法类继承了Operation类,虽说Operation类中的两个属性是私有的,但是存在访问器,如果Operation类中没有访问器,那么就算继承了父类的属性也是没有办法使用的。还有方法的继承,子类继承父类的getResult方法,如果是抽象类那么子类必须重写抽象类的抽象方法,普通方法可以选择性的直接继承或重写。
多态:
有了重写之后,不同子类可以有自己不同的实现。那么多态到底是如何体现的呢?是通过父类的引用指向子类的实现。
在OperationFactory类中的switch块中,父类的引用分别指向的不同的子类的实现。最后在main函数中通过传进来的参数选择性的去决定实现哪一个子类。这才是多态的体现;不是单单的子类重写父类的方法。