java封装继承多态