* Another permissive exception is that any change to existing code is allowed as long as it does not also require a change to any client of that code. This allows the upgrade of the module versions with new language features. For example, [Spring 5](https://howtodoinjava.com/spring-5-tutorial/) supports and uses [Java8 lambda](https://howtodoinjava.com/java-8-tutorial/) syntax but to use it, we do not require to change our client application code.
* Another permissive exception is that any change to existing code is allowed as long as it does not also require a change to any client of that code. This allows the upgrade of the module versions with new language features. For example, [Spring 5](https://howtodoinjava.com/spring-5-tutorial/) supports and uses [Java8 lambda](https://howtodoinjava.com/java-8-tutorial/) syntax but to use it, we do not require to change our client application code.
#### 1.10 [接口和抽象类之间的区别?](//howtodoinjava.com/object-oriented/exploring-interfaces-and-abstract-classes-in-java/ "Exploring interfaces and abstract classes in java")