现实生活中的事物被抽象成对象把具有相同属性和行为的对象被抽象成类再从具有相同属性和行为的类中抽象出父类。
封装隐藏对象的属性和实现细节仅仅对外公开接口。 封装具有一下优点
便于使用者正确、方便的使用系统防止使用者错误修改系统属性有助于建立各个系统之间的松耦合关系提高软件的可重用性降低了大型系统的风险即便整个系统不成功个别独立的子系统有可能还有价值。封装的两大原则
把尽可能多的东西藏起来对外提供简洁的接口把所有的属性封装起来。 继承子类和父类之间的继承关系子类可以获取到父类的属性和方法。
注关于子类能否继承父类的私有方法 从语言角度上说JDK官方文档明确说明子类不能继承父类的私有方法 但从内存角度来说jvm在实例化子类对象之前会先在内存中创建一个父类对象然后在父类对象外部放上子类独有的属性两者合起来形成一个子类对象。所以子类确实拥有父类所有的属性和方法但是父类中的私有方法子类无法访问。
多态java语言允许某个类型的引用变量引用子类的实例而且可以对这个引用变量进行类型转换。