### Question:
ExpressionContainerConfig extends BasicContainerConfig { @Override public Transaction newTransaction() { return new ExpressionTransaction(); } ExpressionContainerConfig(Expressions expressions); @Override Transaction newTransaction(); @Override Object getProperty(String container, String property);  }### Answer:
@Test public void testExpressionInheritance() throws Exception { config.newTransaction().addContainer(EXTRA_CONTAINER).commit(); assertEquals("yes", config.getString("default", "expr")); assertEquals("yes", config.getString("extra", "expr")); config.newTransaction().addContainer(MODIFIED_EXTRA_CONTAINER).commit(); assertEquals("no", config.getString("extra", "expr")); config.newTransaction().addContainer(MODIFIED_DEFAULT_EXPR_CONTAINER).commit(); config.newTransaction().addContainer(EXTRA_CONTAINER).commit(); assertEquals("si", config.getString("extra", "expr")); assertEquals("si", config.getString("extra", "expr")); }