java interface vs extends