1. 封装 将一系列有关联的数据和操作数据的方法封装起来,对数据的访问只能通过暴露给外部的接口 2. 继承 子类继承父类后,拥有父类所有的属性和方法(但不一定都能访问),而且还能扩展新的功能 3. 多态 分为编译时多态(方法重载)和运行时多态(方法重写)实现(运行时)多态需要做两件事 子类继承父类,并重写父类中的方法用父类引用类型指向子类对象,这样同样的引用调用同样的方法会根据子类对象的不同而表现出不同的行为。