add personal-understanding for interface interface and implementation
inhertitance
add personal-understanding for considering alternatives to virtual
functions
add personal-understanding about never redefine an inherited non-virtual
function